oldcatcup 发表于 2014-12-30 21:45:43

求助帖—VB调用CAD总提示“部件忙”。附代码和问题截图。

代码:
Dim AcadApp As AcadApplication
Private Sub Form_Load()
On Error Resume Next
Set AcadApp=GetObject(,"AutoCAD.Application")
If Err Then
MsgBox("不能运行AutoCAD2014,请检查是否安装了AutoCAD2014“)
Exit Sub
End if
AcadApp.visible=true
End Sub

问题截图:



vbcad 发表于 2014-12-31 14:57:25

估计CAD是在编辑状态

Kye 发表于 2019-10-18 20:06:23

本帖最后由 Kye 于 2019-10-18 20:20 编辑

多少年过去了,这个问题有解吗?一般是双击同一个命令(前一次点击还在运行)会产生这个问题
VB怎样取消后台的CAD正在执行的命令,达到在CAD里按ESC一样的效果好像是同一个问题vb二次开发CAD, 如何不提示 "动作不能完成,因为部件[...]忙 这个是同一问题,现在问题是CAD本身操作可以 实现 如果一个命令没完成,如果进入下一个命令,则会取消上一个命令的所有操作.难道vb6控制做不到?

下面这个是黄老师的及不死猫大佬帖子中提到过,有些地方测试好像也不管用
;;;(sendkeys "{Esc 2}")
(defun sendkeys      (keys)
(or *WSH* (setq *WSH* (vlax-get-or-create-object "wscript.shell")))
(vlax-invoke-method *WSH* 'sendkeys keys)
(princ)
)


利用App.PrevInstance防止同一程序执行多次 好像这个也不是用AutoCAD的 测试没通过

kxhoo9 发表于 2023-12-8 18:42:30

是win10系统吗?
Dim AcadApp As AcadApplication
Private Sub Form_Load()
On Error Resume Next
Set AcadApp=GetObject(,"AutoCAD.Application.19.1")
If Err Then
MsgBox("不能运行AutoCAD2014,请检查是否安装了AutoCAD2014“)
Exit Sub
End if
AcadApp.visible=true
End Sub

这是我现在解决这个问题代码,win10需要加版本号
页: [1]
查看完整版本: 求助帖—VB调用CAD总提示“部件忙”。附代码和问题截图。