Foxtable(狐表)用户栏目专家坐堂 → [求助】如何用代码判断系统是32位还是64位


  共有2376人关注过本帖树形打印复制链接

主题:[求助】如何用代码判断系统是32位还是64位

帅哥哟,离线,有人找我吗?
lzzhx
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:995 积分:6712 威望:0 精华:0 注册:2015/1/12 22:12:00
[求助】如何用代码判断系统是32位还是64位  发帖心情 Post By:2017/9/5 11:57:00 [只看该作者]

请教老师:如何用代码判断系统是32位还是64位

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/5 12:18:00 [只看该作者]

 

Dim oConn As New System.Management.ConnectionOptions()
Dim oMs As New System.Management.ManagementScope("\\localhost", oConn)
Dim oQuery As New System.Management.ObjectQuery("select AddressWidth from Win32_Processor")
Dim oSearcher As New System.Management.ManagementObjectSearcher(oMs, oQuery)
Dim oReturnCollection = oSearcher.[Get]()
Dim addressWidth As String = Nothing

For Each oReturn As object In oReturnCollection
   
    addressWidth = oReturn("AddressWidth").ToString()
Next
msgbox(addressWidth)

 


 回到顶部
帅哥哟,离线,有人找我吗?
lzzhx
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:995 积分:6712 威望:0 精华:0 注册:2015/1/12 22:12:00
  发帖心情 Post By:2017/9/5 12:23:00 [只看该作者]

出现错误

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
lzzhx
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:995 积分:6712 威望:0 精华:0 注册:2015/1/12 22:12:00
  发帖心情 Post By:2017/9/5 12:26:00 [只看该作者]

批处理中有个语句

if /i "%PROCESSOR_IDENTIFIER"~0,3%" =="X86"  goto X32

如何转成能在狐表中运行的代码?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/5 12:40:00 [只看该作者]

 升级到最新版foxtable,或者添加引用dll,system.Management.dll

[此贴子已经被作者于2017/9/5 14:33:31编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lzzhx
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:995 积分:6712 威望:0 精华:0 注册:2015/1/12 22:12:00
  发帖心情 Post By:2017/9/5 13:05:00 [只看该作者]

版本是2017-6-12
system.web.dll已经引用 ,还是同样的错误

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/5 14:35:00 [只看该作者]

哦,要引用这个 system.Management.dll

 

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170905143532.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
lzzhx
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:995 积分:6712 威望:0 精华:0 注册:2015/1/12 22:12:00
  发帖心情 Post By:2017/9/5 16:25:00 [只看该作者]

谢谢老师:我用批处理解决了,代码如下,目前好像是正常的,请老师看看代码有什么问题没有。

    Dim batfilenamepath As String = ProjectPath & "mydll\MxDraw52\"
    Dim qdq As String  = batfilenamepath.SubString(0,batfilenamepath.IndexOf("\"))  'bat文件所在目录的驱动器号
    Dim path As String = batfilenamepath.SubString(batfilenamepath.IndexOf("\")+1,batfilenamepath.lastIndexOf("\")-batfilenamepath.IndexOf("\")-1)
    Dim dirstr As String = "cd\" & vbcrlf & qdq & vbcrlf & "cd " & path & vbcrlf
    Dim p As String = "if /i " & """" & "%PROCESSOR_IDENTIFIER:~0,3%" & """" & " == " &  """" & "X86" & """" & " goto X32" & vbcrlf & "MxDrawX52x64.msi" & vbcrlf & "exit" & vbcrlf & ":X32" & vbcrlf & "MxDrawX52.msi" & vbcrlf & "exit"
    Dim bat As String = ""
    bat &= dirstr
    bat &= p   '& """"
    FileSys.WriteAllText(batfilenamepath & "MxCAD.bat",bat,False,Encoding.Default)
    Dim Proc As New Process
    Proc.File = batfilenamepath & "MxCAD.bat"
    proc.WaitForClose = True
    Proc.Start()

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/5 16:33:00 [只看该作者]

不明白你这样的意图。请参考2楼代码获取,根据不同的系统,调用不同的bat文件。尽量不要动态生成bat,这样很容易报毒。

 回到顶部
帅哥哟,离线,有人找我吗?
lzzhx
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:995 积分:6712 威望:0 精华:0 注册:2015/1/12 22:12:00
  发帖心情 Post By:2017/9/5 16:45:00 [只看该作者]

我的目的是根据系统是32位还是64位,分别执行指定路径下的2个不同的mis文件,2楼的代码没有看明白

 回到顶部
总数 11 1 2 下一页