【发布时间】:2019-02-11 19:44:23
【问题描述】:
如何在 AutoCAD 2019 中自动加载 .dll 插件? 最好不要更改 AutoCAD 目录中的任何文件(我不是管理员)。 我正在尝试在 AutoCAD 关闭时加载这个在 excel 文件中注册的插件。它是用 .net 在 vb 中创建的。
我已经尝试过了,但失败了,因为我不是管理员,无法更改 AutoCAD 目录中的文件:
必须有一个不涉及手动编辑 AutoCAD 目录中的文件的解决方案。特别是因为它打算在我工作的公司的 200 多台计算机上使用。
我在vb中用.net在visual studio中创建了这个插件,如下:
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Excel = Microsoft.Office.Interop.Excel
Imports System.IO
Public Class Class1
<CommandMethod("AddAppEvent")>
Public Sub AddAppEvent()
AddHandler Application.SystemVariableChanged, AddressOf appSysVarChanged
End Sub
<CommandMethod("RemoveAppEvent")>
Public Sub RemoveAppEvent()
RemoveHandler Application.SystemVariableChanged, AddressOf appSysVarChanged
End Sub
Public Sub appSysVarChanged(ByVal senderObj As Object,
ByVal sysVarChEvtArgs As Autodesk.AutoCAD.ApplicationServices.
SystemVariableChangedEventArgs)
Dim oVal As Object = Application.GetSystemVariable(sysVarChEvtArgs.Name)
Dim fileTest As String = "C:\Users\rita.aguiar\Documents\AutoCAD plug-in\Registo de Eventos.xlsx"
If File.Exists(fileTest) Then
File.Delete(fileTest)
End If
Dim oExcel As Object
oExcel = CreateObject("Excel.Application")
Dim oBook As Excel.Workbook
Dim oSheet As Excel.Worksheet
oBook = oExcel.Workbooks.Add
oSheet = oExcel.Worksheets(1)
oSheet.Name = "Fecho do AutoCAD"
oSheet.Range("A1").Value = "O AutoCAD foi encerrado."
oBook.SaveAs(fileTest)
oBook.Close()
oBook = Nothing
oExcel.Quit()
oExcel = Nothing
End Sub
End Class
如果我可以在这里写一些其他东西来至少自动启用事件寄存器,而不是总是必须通过在 AutoCAD 中点击“AddAppEvent”命令来启用它,那就太好了。而且我还想自动加载插件,而不是每次打开 autoCAD 文件时都必须手动点击“netload”并选择 .dll 文件。
非常感谢。
【问题讨论】:
-
您能列出您正在尝试使用的特定插件,以及到目前为止您尝试过的没有奏效的插件吗?
-
能否提供编译插件的文件路径?
-
另外,如果没有管理员权限,您是否无法编辑链接中提到的 .lsp 文件?我已经能够在没有管理员权限的情况下使用 Notepad++ 编辑和保存我的
-
如何自动将文件路径提供给 AutoCAD?即使在记事本++中我也不能,谢谢。此外,在我公司的每台计算机上编辑每个文件也不理想。
-
如果您向我提供您导出的 DLL 文件的目录,即 C:/User/YourName/Documents 等。我可以尝试为您制作所需的文件。
标签: .net vb.net dll autoload autocad