shh_188 发表于 2016-5-3 11:26:18

如何用Lisp判断当前CAD是32位的还是64位的?

如题,要对当前CAD做一个判断,确定是32位还是64位的CAD。根据32位或者64位,要加载不同的arx。

请教各位大大。

wxssh 发表于 2016-7-12 09:52:17

(getvar 'platform)

shh_188 发表于 2016-5-3 16:20:28

ZZXXQQ 发表于 2016-5-3 15:44 static/image/common/back.gif
试下(getvar "ACADVER")

这个是CAD的版本,里面没有包含软件是32或者64位的信息
我比对过32位和64位的CAD,返回的ACADVER系统变量值是完全一样的

neilei_1982 发表于 2021-4-22 20:02:58

很有用!不错

自贡黄明儒 发表于 2016-5-3 12:45:58

看highflybir大师的
;;;判断系统是否为64位(getenv"PROCESSOR_ARCHITECTURE")
(defun Is64Bit (/ WMI SVR SYS)
    (setq WMI (vlax-create-object "WbemScripting.SWbemLocator"))
    (setq SVR (VLAX-INVOKE WMI 'ConnectServer))
    (vlax-for n (vlax-invoke SVR 'InstancesOf "Win32_ComputerSystem")
      (setq SYS (vlax-get n 'SystemType))
    )
    (vlax-release-object SVR)
    (vlax-release-object WMI)
    (wcmatch sys "x64*")
)

shh_188 发表于 2016-5-3 14:48:45

自贡黄明儒 发表于 2016-5-3 12:45 static/image/common/back.gif
看highflybir大师的

黄兄,这个是判断windows系统是不是64位的
64位系统里也可以安装32位的CAD,我需要的是确定CAD本身是32还是64位的

不知道你有没有好办法

ZZXXQQ 发表于 2016-5-3 15:44:42

试下(getvar "ACADVER")

自贡黄明儒 发表于 2016-5-3 16:09:44

shh_188 发表于 2016-5-3 14:48 static/image/common/back.gif
黄兄,这个是判断windows系统是不是64位的
64位系统里也可以安装32位的CAD,我需要的是确定CAD本身是32还 ...

系统用(getenv"PROCESSOR_ARCHITECTURE")

shh_188 发表于 2016-5-3 16:19:34

自贡黄明儒 发表于 2016-5-3 16:09 static/image/common/back.gif
系统用(getenv"PROCESSOR_ARCHITECTURE")

黄兄,测试了一下,不能满足要求啊
用2楼你放的那个函数,测试出来的效果,其实和 PROCESSOR_ARCHITECTURE 的结果是一样的,只能判断出windows本身系统是32还是64的

我遇到的情况是,64位的win7下,安装了32位和64位的CAD 2010,我要确定当前打开的CAD到底是32位的还是64位的

自贡黄明儒 发表于 2016-5-3 16:25:13

本帖最后由 自贡黄明儒 于 2016-5-3 16:28 编辑

shh_188 发表于 2016-5-3 16:20 static/image/common/back.gif
这个是CAD的版本,里面没有包含软件是32或者64位的信息
我比对过32位和64位的CAD,返回的ACADVER系统变量 ...
(strlen (vl-princ-to-string (vlax-get-acad-object)))=>39就是32位Autocad

shh_188 发表于 2016-5-3 16:39:26

自贡黄明儒 发表于 2016-5-3 16:25 static/image/common/back.gif
(strlen (vl-princ-to-string (vlax-get-acad-object)))=>39就是32位Autocad

居然是这么判断的,这招太诡异了
测试了一下还真是这么回事,吓了

感谢黄兄,也是开了一扇大门啊,多谢多谢

sicky111 发表于 2016-5-3 23:15:01

自贡黄明儒 发表于 2016-5-3 16:25 static/image/common/back.gif
(strlen (vl-princ-to-string (vlax-get-acad-object)))=>39就是32位Autocad

这个有用   
页: [1] 2
查看完整版本: 如何用Lisp判断当前CAD是32位的还是64位的?