天天看點

判斷是否是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  ,如需轉載請自行聯系原作者

繼續閱讀