天天看点

判断是否是64位操作系统

在看一个外国佬的代码的时候,看到一个API函数,然后随手查了查MSDN,原来是新加的用来判断是否是Win64位系统的,于是写了一个函数用来判断是否是64位操作系统:

<a></a>

代码

 1 function IsWin64: Boolean;  

 2 var  

 3    Kernel32Handle: THandle;  

 4    IsWow64Process: function(Handle: Windows.THandle; var Res: Windows.BOOL): Windows.BOOL; stdcall;  

 5    GetNativeSystemInfo: procedure(var lpSystemInfo: TSystemInfo); stdcall;  

 6    isWoW64: Bool;  

 7    SystemInfo: TSystemInfo;  

 8 const  

 9    PROCESSOR_ARCHITECTURE_AMD64 = 9;  

10    PROCESSOR_ARCHITECTURE_IA64 = 6;  

11 begin  

12   Kernel32Handle := GetModuleHandle('KERNEL32.DLL');  

13   if Kernel32Handle = 0 then  

14     Kernel32Handle := LoadLibrary('KERNEL32.DLL');  

15   if Kernel32Handle &lt;&gt; 0 then  

16   begin  

17     IsWOW64Process := GetProcAddress(Kernel32Handle,'IsWow64Process');  

18     GetNativeSystemInfo := GetProcAddress(Kernel32Handle,'GetNativeSystemInfo');  

19     if Assigned(IsWow64Process) then  

20     begin  

21       IsWow64Process(GetCurrentProcess,isWoW64);  

22       Result := isWoW64 and Assigned(GetNativeSystemInfo);  

23       if Result then  

24       begin  

25         GetNativeSystemInfo(SystemInfo);  

26         Result := (SystemInfo.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_AMD64) or  

27                   (SystemInfo.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_IA64);  

28       end;  

29     end  

30     else Result := False;  

31   end  

32   else Result := False;  

33 end;  

本文转自 不得闲 博客园博客,原文链接: http://www.cnblogs.com/DxSoft/archive/2010/01/01/1637656.html  ,如需转载请自行联系原作者

继续阅读