xiaxiang 发表于 2012-7-24 08:31:09

highflybird 发表于 2012-7-24 05:19 static/image/common/back.gif


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

xiaxiang 发表于 2012-7-24 09:01:06

本帖最后由 xiaxiang 于 2012-7-24 09:03 编辑

哈哈,研究了一下
通过WMI来实现获取客户端计算机硬件及系统信息
//系统信息获取
function getSysInfo(){
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
//CPU信息
var cpu = new Enumerator (service.ExecQuery("SELECT * FROM Win32_Processor")).item();
var cpuType=cpu.Name,hostName=cpu.SystemName;
//内存信息
var memory = new Enumerator (service.ExecQuery("SELECT * FROM Win32_PhysicalMemory"));
for (var mem=[],i=0; !memory.atEnd(); memory.moveNext()) mem={cap:memory.item().Capacity/1024/1024,speed:memory.item().Speed}
//系统信息
var system=new Enumerator (service.ExecQuery("SELECT * FROM Win32_ComputerSystem")).item();
var physicMenCap=Math.ceil(system.TotalPhysicalMemory/1024/1024),curUser=system.UserName,cpuCount=system.NumberOfProcessors
return {cpuType:cpuType,cpuCount:cpuCount,hostName:hostName,curUser:curUser,memCap:physicMenCap,mem:mem}
}
代码实现主要包括这几部分: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 static/image/common/back.gif


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

hao3ren 发表于 2012-7-24 09:53:41

呵呵,关掉也很麻烦,用老板键可以快速切换

半听可乐 发表于 2012-7-24 10:54:11

highflybir 发表于 2012-7-23 15:22 static/image/common/back.gif
仅仅在64位上win7 ,IE8测试通过,未测试其他版本。

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

sunny20102 发表于 2012-7-24 14:45:34

To 15#

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

半听可乐 发表于 2012-7-24 15:02:21

sunny20102 发表于 2012-7-24 14:45 static/image/common/back.gif
To 15#

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

还是不行,问题依旧

xiaxiang 发表于 2012-7-24 15:10:55

半听可乐 发表于 2012-7-24 15:02 static/image/common/back.gif
还是不行,问题依旧

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

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

华轩〈肖〉 发表于 2012-7-24 18:20:36

确实是很佩服版大的速度呀

preone 发表于 2012-7-24 20:41:29

highflybird 发表于 2012-7-24 05:19 static/image/common/back.gif


神人~~
页: 1 [2] 3 4 5
查看完整版本: 求一个在CAD界面瞬间关掉所有网页的lsp程序