draw 发表于 2003-9-6 23:07:00

这个问题怎样解决

用VB编了一个小程序,经编译后作为外部命令使用pl.exe。在程序调用时要使用
"shell" & "pl.exe" & chr(13)语句。
但在每次调用时,总是将 Autocad shell 窗口激活,还要人工关闭该窗口,太麻烦了。

mccad 发表于 2003-9-7 06:58:00

使用Autolisp函数:
(startapp appcmd )

draw 发表于 2003-9-7 08:56:00

只想用VB编程

只想用VB编程

mccad 发表于 2003-9-7 12:28:00

不明白你是怎么做的,如下的过程没有你说的DOS黑框出来:
Sub RunNotepad()
    Shell "notepad.exe"
End Sub

draw 发表于 2003-9-7 15:23:00

使用Shell "notepad.exe"不是不出来,只是一闪而过。但是我编的外部命令发出后,却停在那个黑框上了,必须要人工关闭才能接着运行。

mccad 发表于 2003-9-7 19:15:00

我这里没有你说的情况。能否具体一点。

draw 发表于 2003-9-7 19:44:00

你试试这个工具条:
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

mccad 发表于 2003-9-7 20:22:00

你这里指的是在工具按钮中的宏,应该使用我提供的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)

试试看

draw 发表于 2003-9-8 15:02:00

问题依然存在!

mccad 发表于 2003-9-8 16:22:00

试试以下程序,在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
查看完整版本: 这个问题怎样解决