这个问题怎样解决
用VB编了一个小程序,经编译后作为外部命令使用pl.exe。在程序调用时要使用"shell" & "pl.exe" & chr(13)语句。
但在每次调用时,总是将 Autocad shell 窗口激活,还要人工关闭该窗口,太麻烦了。 使用Autolisp函数:
(startapp appcmd )
只想用VB编程
只想用VB编程 不明白你是怎么做的,如下的过程没有你说的DOS黑框出来:Sub RunNotepad()
Shell "notepad.exe"
End Sub
使用Shell "notepad.exe"不是不出来,只是一闪而过。但是我编的外部命令发出后,却停在那个黑框上了,必须要人工关闭才能接着运行。 我这里没有你说的情况。能否具体一点。 你试试这个工具条:
Sub main() '连接AutoCad
On Error Resume Next
Set acadapp = GetObject(, "autocad.application")
If Err Then
Err.Clear
Set acadapp = CreateObject("autocad.application")
If Err Then
MsgBox Err.Description
Exit Sub
End If
End If
acadapp.WindowState = acMax
Dim cmg As AcadMenuGroup
Dim ntb As AcadToolbar
Dim ntbb As AcadToolbarItem
Dim com As String
Set cmg = acadapp.MenuGroups.Item(0)
Set ntb = cmg.Toolbars.Add("GJT")
com = Chr(3) & Chr(3) & "shell" & Chr(13) & "notepad.exe" & Chr(13)
Set ntbb = ntb.AddToolbarButton(ntb.Count + 1, "Open", "Open Macro", com, False)
End Sub 你这里指的是在工具按钮中的宏,应该使用我提供的LISP方法来解决。
com = Chr(3) & Chr(3) & "(startapp" & Chr(13) & "notepad.exe" & Chr(13)& ")"
Set ntbb = ntb.AddToolbarButton(ntb.Count + 1, "Open", "Open Macro", com, False)
试试看 问题依然存在! 试试以下程序,在VBA调试通过,你可以改到VB中:
Sub AddButton()
Dim cmg As AcadMenuGroup
Dim ntb As AcadToolbar
Dim ntbb As AcadToolbarItem
Dim com As String
Set cmg = MenuGroups.Item(0)
'cmg.Toolbars("GJT").Delete
Set ntb = cmg.Toolbars.Add("GJT")
com = Chr(3) & Chr(3) & Chr(16) & "(startapp""notepad.exe"")(princ)" & Chr(16) & vbCr
Set ntbb = ntb.AddToolbarButton(ntb.Count + 1, "Open", "Open Macro", com, False)
End Sub
页:
[1]
2