明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4084|回复: 9

[【不死猫】] [不死猫出品]WMI 在 lisp 上的简单应用(2)-根据屏幕分辨率调整DCL大小

[复制链接]
发表于 2008-12-19 12:30:00 | 显示全部楼层 |阅读模式
本帖最后由 nonsmall 于 2013-5-13 10:50 编辑

大的对话框在800*600的显示器上总是让人烦恼

例如我的LIsp开发小助手

但是又不能为了照顾小的分辨率而让对话框变的过于紧凑

解决的办法可以做两套程序 使用时用户自己选择

但实际上可以根据用户的屏幕分辨率自动选择使用哪个对话框

1 做2个不同的DCL(DCL可以事先写好 也可以用Lisp自动写出来)

2 获得屏幕分辨率

3 判断使用哪个对话框

(defun test()
 (setq wmi (vlax-create-object "WbemScripting.SWbemLocator"))
 (setq meth1 (vlax-invoke-method wmi 'ConnectServer nil nil nil nil nil nil nil nil ))
 (setq meth2 (vlax-invoke-method meth1 'ExecQuery "Select * from Win32_DisplayConfiguration" nil nil nil ))
 (vlax-for n meth2
  (print (vlax-get n 'PelsWidth));屏幕宽度
  (print (vlax-get n 'PelsHeight));屏幕高度
 )
)

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2008-12-23 21:36:00 | 显示全部楼层
  1. (defun zj-get-scr-coods (/ half_h half_w pt_cen lst ptx pty)
  2.    (setq pt_cen (trans (GETVAR "VIEWCTR") 1 2)
  3.    ptx (car pt_cen)
  4.    pty (cadr pt_cen)
  5.       half_h (* 0.5 (GETVAR "VIEWSIZE"))
  6.    half_w (* half_h (/ (car (GETVAR "SCREENSIZE")) (cadr (GETVAR "SCREENSIZE"))))
  7.    )
  8.   (LIST (LIST (- ptx half_w) (- pty half_h)) (LIST (+ ptx half_w) (+ pty half_h)))
  9. )
返回绘图区左下角和右下角坐标组成的表
回复 支持 1 反对 0

使用道具 举报

发表于 2008-12-19 14:48:00 | 显示全部楼层
用Lisp自动写出来比较好
发表于 2008-12-20 18:13:00 | 显示全部楼层
nonsmall发表于2008-12-19 12:30:00大的对话框在800*600的显示器上总是让人烦恼例如我的LIsp开发小助手但是又不能为了照顾小的分辨率而让对话框变的过于紧凑解决的办法可以做两套程序 使用时用户自己选择但实际上可以根据用户的屏

能讲讲如何看到meth2的属性吗?我用vlax-dump-object怎么看不到有PelsWidth属性?

 楼主| 发表于 2008-12-21 16:27:00 | 显示全部楼层
wangph发表于2008-12-20 18:13:00能讲讲如何看到meth2的属性吗?我用vlax-dump-object怎么看不到有PelsWidth属性?
WMI是什么?

  WMI是Windows 2K/XP管理系统的核心;对于其他的Win32操作系统,WMI是一个有用的插件。WMI以CIMOM为基础,CIMOM即公共信息模型对象管理器(Common Information Model Object Manager),是一个描述操作系统构成单元的对象数据库,为MMC和脚本程序提供了一个访问操作系统构成单元的公共接口。通过它可以访问、配置、管理和监视几乎所有的Windows资源,比如用户可以在远程计算机器上启动一个进程;设定一个在特定日期和时间运行的进程;远程启动计算机;获得本地或远程计算机的已安装程序列表;查询本地或远程计算机的Windows事件日志等等。

感兴趣的话可以学习相关知识和参考

发表于 2008-12-21 16:33:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2008-12-21 17:13:00 | 显示全部楼层

有系统变量

给过你的 你去找找

发表于 2008-12-24 01:00:00 | 显示全部楼层
哪位高手知道如何获取绘图区的中点坐标?
发表于 2008-12-24 09:34:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2013-9-30 14:07:03 | 显示全部楼层
谢谢分享,返回的是左下角和右上角的坐标。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-9-29 21:33 , Processed in 0.186900 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表