芯友网Xin1234.COM

COM和句柄是可以获取正在运行的版本的。如果还没运行,可以通过查注册表的方法查询已经安装注册的所有CAD软件版本



工黎
COM和句柄是可以获取正在运行的版本的。
如果还没运行,可以通过查注册表的方法查询已经安装注册的所有CAD软件版本
了老我果如
嗯嗯,还是通过注册表吧
远致静宁
如果一台电脑安装了多个版本,注册表方法就失效了,不知道运行的是哪一个
了老我果如
没事,再让用户选一下吧
com的方式不是也得去试么
工黎
场景不一样,你好像天正这种二开的,是先运行天正软件,然后获取注册表中的CAD版本,最后列出可选的版本号,让用户来选择一个CAD版本启动CAD。
远致静宁
代码试验出来,就无需用户选了,友好一些
要不然,用户会烦的
了老我果如
关键你那个com的引用库,不是要依赖版本么
你都不知道是哪个版本,怎么去引用
工黎
但是如果用户电脑安装多个版本的电脑呢,还是要选的。
远致静宁
把getobject里面的18换成其他数字,做成一连串的判断,就知道是哪一个版本了,根本无需用户回答。除非他同时运行了多个版本的CAD。
还有一个办法,就是API方式的,但是前提是CAD是当前活动程序,也就是在最上面:
'获取系统级活动窗口句柄(程序)
Private Declare Function GetForegroundWindow Lib "user32 " () As Long

然后:
hWndCAD = GetForegroundWindow()得到句柄

有了句柄就什么都好办了
以上是VB的代码
空天
把18去了,不行吗
了老我果如
可以是可以,但是关通过com的方式的引用库,不是要依赖版本么
空天
注册表中有
了老我果如
ok

相关问题
------分隔线----------------------------
赞助商链接
赞助商链接
推荐内容