在看一個外國佬的代碼的時候,看到一個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 <> 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 ,如需轉載請自行聯系原作者