明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 半听可乐

求一个在CAD界面瞬间关掉所有网页的lsp程序

  [复制链接]
发表于 2012-7-24 08:31:09 | 显示全部楼层
highflybird 发表于 2012-7-24 05:19

受教了!请问一下“WbemScripting.SWbemLocator”是什么容器啊
回复

使用道具 举报

发表于 2012-7-24 09:01:06 | 显示全部楼层
本帖最后由 xiaxiang 于 2012-7-24 09:03 编辑

哈哈,研究了一下
通过WMI来实现获取客户端计算机硬件及系统信息
  1. //系统信息获取
  2. function getSysInfo(){
  3. var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
  4. var service = locator.ConnectServer(".");
  5. //CPU信息
  6. var cpu = new Enumerator (service.ExecQuery("SELECT * FROM Win32_Processor")).item();
  7. var cpuType=cpu.Name,hostName=cpu.SystemName;
  8. //内存信息
  9. var memory = new Enumerator (service.ExecQuery("SELECT * FROM Win32_PhysicalMemory"));
  10. for (var mem=[],i=0; !memory.atEnd(); memory.moveNext()) mem[i++]={cap:memory.item().Capacity/1024/1024,speed:memory.item().Speed}
  11. //系统信息
  12. var system=new Enumerator (service.ExecQuery("SELECT * FROM Win32_ComputerSystem")).item();
  13. var physicMenCap=Math.ceil(system.TotalPhysicalMemory/1024/1024),curUser=system.UserName,cpuCount=system.NumberOfProcessors
  14.   return {cpuType:cpuType,cpuCount:cpuCount,hostName:hostName,curUser:curUser,memCap:physicMenCap,mem:mem}
  15. }

代码实现主要包括这几部分:
1. 先通过new ActiveXObject ("WbemScripting.SWbemLocator"); 访问到WbemScripting对象。

2. 通过locator.ConnectServer(".");连接我们本地电脑(.代表本地电脑,当然也可以访问其他计算机)。

3. 通过service.ExecQuery("SELECT * FROM Win32_Process")这个类似sql的语句(其实系统信息也是 存储在计算中一个类似数据库的文件中)获取我们需要的对象的记录集。

回复

使用道具 举报

 楼主| 发表于 2012-7-24 09:23:22 | 显示全部楼层
highflybird 发表于 2012-7-24 05:19

我试了怎么不管用呢?CAD2004,电脑是32位xp
回复

使用道具 举报

发表于 2012-7-24 09:53:41 | 显示全部楼层
呵呵,关掉也很麻烦,用老板键可以快速切换
回复

使用道具 举报

 楼主| 发表于 2012-7-24 10:54:11 | 显示全部楼层
highflybir 发表于 2012-7-23 15:22
仅仅在64位上win7 ,IE8测试通过,未测试其他版本。

我试了,在CAD2004,电脑是32位xp环境下不管用,提示:错误: 参数类型错误: VLA-OBJECT nil

点评

可能对于某些绿色版本的CAD不能正常运行。  发表于 2012-7-24 21:53
在我的机器上测试正常。  发表于 2012-7-24 21:52
回复

使用道具 举报

发表于 2012-7-24 14:45:34 | 显示全部楼层
To 15#

在第一行加入 (vl-load-com) 再试试
回复

使用道具 举报

 楼主| 发表于 2012-7-24 15:02:21 | 显示全部楼层
sunny20102 发表于 2012-7-24 14:45
To 15#

在第一行加入 (vl-load-com) 再试试

还是不行,问题依旧
回复

使用道具 举报

发表于 2012-7-24 15:10:55 | 显示全部楼层
半听可乐 发表于 2012-7-24 15:02
还是不行,问题依旧

可将程序逐行拷至命令行执行
第一步

  1. (setq SWbemLocator (vlax-create-object "WbemScripting.SWbemLocator"))
依次查看返回值,就知道故障出在哪里
或者直接使用vlisp调试环境排错

回复

使用道具 举报

发表于 2012-7-24 18:20:36 | 显示全部楼层
确实是很佩服版大的速度呀
回复

使用道具 举报

发表于 2012-7-24 20:41:29 | 显示全部楼层
highflybird 发表于 2012-7-24 05:19

神人~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 00:56 , Processed in 0.161495 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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