安徽彩票大奖 欧洲百万乐透大奖 七星彩17049规律大奖 双色球中大奖领奖过程 3d近期中大奖故事 广州番禺中福彩大奖的 鸡男注定会中大奖 2016江苏彩民中大奖 趣彩网大奖网黑平台 大乐透4.97亿大奖 霍邱一彩民6元中双色球547万大奖 双色球黑龙江中大奖图 体育彩票中大奖名单 什么样的人能中大奖 彩票大奖作假

Access或Excel VBA或VB6判断windows系统是32位还是64位

2017-07-23 08:34:00
zstmtony
原创
1670

最近帮客户做一个Actviex DLL 同时用于windows 32位与windows 64位环境

在安装和使用时总是出现一些问题,经过不断地折腾,终于?#19994;?#38382;题所在。主要是判断 32位与 64位的 系统目录 system32 syswow64不太准确。后实现以下的函数来精确判断

'Access或Excel VBA或VB6判断windows系统是32位还是64位 (32 bit or 64bit)

'来判断系统是32bit还是64bit,主要通过API来实现,先在窗体模块里申明以下API定义:

Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function IsWow64Process Lib "kernel32" (ByVal hProc As Long, bWow64Process As Boolean) As Long

'然后在窗体或模块中再建立一个判断系统是32位还是64位的函数,返回值是布尔值,如果系统是32位,此函数返回值是Flase 如果是64位,返回值是True,函数代码如下:



'来源:Access交流网
'作者:tmtony  Public Function Is64bit() As Boolean
    Dim handle As Long, bolFunc As Boolean
    bolFunc = False
    handle = GetProcAddress(GetModuleHandle("kernel32"), "IsWow64Process")
    If handle > 0 Then
        IsWow64Process GetCurrentProcess(), bolFunc
    End If
    Is64bit = bolFunc
End Function

'如果需要测试一下这个函数是否有效,可以在窗体上建立一个lblWindowBit标签控件,代码如下:



Private Sub Form_Load()
    lblWindowBit.Caption = Is64bit
End Sub


'如果你的电脑windows系统是32位的,则返回的肯定就是“Flase?#20445;?#22914;果是64位,则返回肯定就是“True”
'对比检验,可打开计算机的系统属性,看看你的电脑安装的winodws是否跟此程序运行后得到的结果一致。



相关Access技巧:

Access 或Excel VBA判断当前Office版本是32位Office还是64位Office的四?#22336;?#27861;

分享
? 1999-2019 Office交流网?? 中山市天鸣科技发展有限公司 粤ICP备10043721号-5 SQL查询:19
内存占用:7.50MB
PHP 执行时间:0.19
双色球大奖2000年
安徽彩票大奖 欧洲百万乐透大奖 七星彩17049规律大奖 双色球中大奖领奖过程 3d近期中大奖故事 广州番禺中福彩大奖的 鸡男注定会中大奖 2016江苏彩民中大奖 趣彩网大奖网黑平台 大乐透4.97亿大奖 霍邱一彩民6元中双色球547万大奖 双色球黑龙江中大奖图 体育彩票中大奖名单 什么样的人能中大奖 彩票大奖作假
我的世界plot指令 新时时彩二星缩水软件 重庆时时彩开奖查询 炉石传说盒子官网安卓 东方珍兽稳赚 汉诺威96vs勒沃 海底捞鱼皮啥牌子 怎样配波尔多液 黄金武士典韦有特效吗 回看尤文图斯对战萨索洛