请问能将cad窗口设为当前窗口吗
由于win7系统原因 cad2006+天正 启动之后cad窗口不会成为当前激活的窗口需要手动去点一下cad界面或任务栏才能使cad成为当前窗口(XP无此问题)
请问lisp能实现自动激活cad窗口设为当前窗口吗?
另外使用opendcl的窗口被调出以后,opendcl窗口获得焦点,cad窗口被后置了,能实现打开opendcl窗口后自动激活cad为当前窗口吗? 本帖最后由 print1985 于 2014-7-30 16:26 编辑
用大半天时间学习了高飞鸟大师的神贴 http://bbs.mjtd.com/thread-85724-1-1.html
没想到这么一个简单的功能居然要用到API来解决
解决方法:DynamicWrapperX插件+以下代码 (插件见神贴);置为当前窗口
(defun ForegroundWindow (/ app hwndwrap)
(setq app (vlax-get-acad-object)) ;CAD程序对象
(setq hwnd (vla-get-hwnd app)) ;CAD程序句柄
(setq wrap (vlax-create-object "DynamicWrapperX")) ;创建DynamicWrapperX对象
(vlax-invoke wrap 'Register "USER32" "SetForegroundWindow" "i=l" "r=l");注册API函数
(vlax-invoke wrap 'SetForegroundWindow hwnd) ;窗口前置
(vlax-release-object wrap) ;释放
(princ)
) API真的很好玩,可以在cad里面直接控制其它应用程序,比如简单的关闭窗口、最大化、最小化
复杂的可以用lisp做木马、病毒了(太可怕了,还好DynamicWrapperX不是系统自带的)
可惜DynamicWrapperX插件不支持64位系统,希望大神能升级下 Ref link:
http://yuripopov.ucoz.net/index/dwx_version_history_en/0-23 非常感谢 原来早更新支持64位了 有俄语 应该是俄国人写的吧
我来搬运一下 兄弟也是神人啊!想研究啥都能研究出来!
api我也看了会,没明白! wowan1314 发表于 2014-7-31 00:03 static/image/common/back.gif
兄弟也是神人啊!想研究啥都能研究出来!
api我也看了会,没明白!
我也只懂了点点,API函数和lisp的函数一样,要用哪个函数的时候查一下,API是系统自带的,主流编程软件都可以直接调用,可惜lisp无法直接调用(鄙视桌子),所以用到了DynamicWrapperX插件来间接调用 (setq name "C:\\DynWrapX.dll")
(setq wsh (vlax-Create-Object "wscript.shell"))
(vlax-invoke wsh 'Run (strcat "RegSvr32.exe " name))
(setq wrap (vlax-create-object "DynamicWrapperX"))
wrap返回的是nil
AutoCAD2012 64位的时候,好像还是不行 carrot1983 发表于 2015-7-8 16:05 static/image/common/back.gif
(setq name "C:\\DynWrapX.dll")
(setq wsh (vlax-Create-Object "wscript.shell"))
(vlax-i ...
呵呵大蔡 你用的是老版本的"DynamicWrapperX" 用新的就可以了。 wangshang323 发表于 2015-7-19 00:15 static/image/common/back.gif
呵呵大蔡 你用的是老版本的"DynamicWrapperX" 用新的就可以了。
呵呵,你是这个号啊。
用的是5#楼的print1985提供的,2.1.0版的。(defun C:TEST ()
(vl-load-com)
(setq NAME (getfiled "选择 dynwrapx.dll" "c:/" "dll" 2))
(setq WSH (vlax-create-object "wscript.shell"))
(vlax-invoke WSH 'RUN (strcat "RegSvr32.exe /s " NAME))
(vlax-release-object WSH)
(setq WRAP (vlax-create-object "DynamicWrapperX"))
(princ WRAP)
(princ)
)
命令: test nil
win7 CAD2012
页:
[1]
2