rocwings 发表于 2017-9-29 09:36:00

求助:ActiveX exe如何挂载指定pid的cad进程

如题,请教各位大神:
ActiveX exe挂载cad时,似乎只能默认加载最后一次启动的cad进程。若开了3个cad,如何让ActiveX exe挂载指定pid的cad(如第2个进程),而不是默认的那个cad进程呢?
希望各位走过路过的大神,不吝赐教!

vbcad 发表于 2017-10-1 17:43:00

以前我在CAD8的时候碰到有人 问 这个 问题 。
我把以前的答案复制过来了,请参考一下!(也适用于EXCEL)
开始以为很简单,但是自己实验了一下发现是个难题,因为VB获得对象函数只能是获得第一个实例,后来搜索了各种资料,终于解决这个难题了,目前在网上还没有看到解决的方法。这是本论坛首发,与大家共同分享,可以任意转载。
可以按如下方法操作解决问题,比如打开了C:\TEST.DWG,C:\TA.DWG等等
引用方法就是加上文件名,一定要绝对路径才行。
SET CADDOC=GetObject("C:\TEST.DWG").Application

xinxirong 发表于 2017-9-30 11:07:00

不行的,研究了很久都没有结果,放弃吧。

Kye 发表于 2017-9-30 13:07:00


楼主看看这个帖子99楼--->101楼,看是否有点作用

pengfei2010 发表于 2017-10-7 17:36:00

回帖是一种美德!感谢楼主的无私分享 谢谢

rocwings 发表于 2017-11-8 09:54:00


非常感謝您的回復!你的答案最為詳盡,看樣子錯不了,有空了試驗一下。
萬分感謝!

rocwings 发表于 2018-8-23 11:53:00


非常感谢你的帮助!
经过试验确实有效。
但如果打开的图,不管vb程序一直开着还是关了再开,只要这张图不关,再创建对象时就会多弹出一个是否保存新建文件的对话框,请问这个有好的解决方法吗?对话框点确定或取消效果都一样。
创建对象代码:
Public acadApp As Object, ThisDrawing As Object
Set acadApp = GetObject(Text1.Text).Application
重开程序再次获取同一对象,【Set acadApp = GetObject(Text1.Text).Application】就会出现此对话框,有点烦人。以下是弹出框的内容
---------------------------
AutoCAD
---------------------------
是否将改动保存到 Drawing2.dwg?
---------------------------
是(Y)   否(N)   取消   
---------------------------
页: [1]
查看完整版本: 求助:ActiveX exe如何挂载指定pid的cad进程