[不死猫出品]WMI 在 lisp 上的简单应用(2)-根据屏幕分辨率调整DCL大小
本帖最后由 nonsmall 于 2013-5-13 10:50 编辑 <br /><br /><p>大的对话框在800*600的显示器上总是让人烦恼</p><p>例如我的LIsp开发小助手</p><p>但是又不能为了照顾小的分辨率而让对话框变的过于紧凑</p><p>解决的办法可以做两套程序 使用时用户自己选择</p><p>但实际上可以根据用户的屏幕分辨率自动选择使用哪个对话框</p><p>1 做2个不同的DCL(DCL可以事先写好 也可以用Lisp自动写出来)</p><p>2 获得屏幕分辨率</p><p>3 判断使用哪个对话框</p><p>(defun test()<br/> (setq wmi (vlax-create-object "WbemScripting.SWbemLocator"))<br/> (setq meth1 (vlax-invoke-method wmi 'ConnectServer nil nil nil nil nil nil nil nil ))<br/> (setq meth2 (vlax-invoke-method meth1 'ExecQuery "Select * from Win32_DisplayConfiguration" nil nil nil ))<br/> (vlax-for n meth2<br/> (print (vlax-get n 'PelsWidth));屏幕宽度<br/> (print (vlax-get n 'PelsHeight));屏幕高度<br/> )<br/>)</p> (defun zj-get-scr-coods (/ half_h half_w pt_cen lst ptx pty)(setq pt_cen (trans (GETVAR "VIEWCTR") 1 2)
ptx (car pt_cen)
pty (cadr pt_cen)
half_h (* 0.5 (GETVAR "VIEWSIZE"))
half_w (* half_h (/ (car (GETVAR "SCREENSIZE")) (cadr (GETVAR "SCREENSIZE"))))
)
(LIST (LIST (- ptx half_w) (- pty half_h)) (LIST (+ ptx half_w) (+ pty half_h)))
)
返回绘图区左下角和右下角坐标组成的表
用Lisp自动写出来比较好 nonsmall发表于2008-12-19 12:30:00static/image/common/back.gif大的对话框在800*600的显示器上总是让人烦恼例如我的LIsp开发小助手但是又不能为了照顾小的分辨率而让对话框变的过于紧凑解决的办法可以做两套程序 使用时用户自己选择但实际上可以根据用户的屏
<p>能讲讲如何看到meth2的属性吗?我用vlax-dump-object怎么看不到有PelsWidth属性?</p> wangph发表于2008-12-20 18:13:00static/image/common/back.gif能讲讲如何看到meth2的属性吗?我用vlax-dump-object怎么看不到有PelsWidth属性?
WMI是什么? <br/><div class="spctrl"></div><p> WMI是Windows 2K/XP管理系统的核心;对于其他的Win32操作系统,WMI是一个有用的插件。WMI以CIMOM为基础,CIMOM即公共信息模型对象管理器(Common Information Model Object Manager),是一个描述操作系统构成单元的对象数据库,为MMC和脚本程序提供了一个访问操作系统构成单元的公共接口。通过它可以访问、配置、管理和监视几乎所有的Windows资源,比如用户可以在远程计算机器上启动一个进程;设定一个在特定日期和时间运行的进程;远程启动计算机;获得本地或远程计算机的已安装程序列表;查询本地或远程计算机的Windows事件日志等等。</p><p>感兴趣的话可以学习相关知识和参考</p> <p>有系统变量</p><p>给过你的 你去找找</p> 哪位高手知道如何获取绘图区的中点坐标? 谢谢分享,返回的是左下角和右上角的坐标。
页:
[1]