function IsWin64: boolean;
var
Kernel32Handle: THandle;
IsWow64Process: function(Handle: Windows.THandle; var Res: Windows.BOOL): Windows.BOOL; stdcall;
GetNativeSystemInfo: procedure(var lpSystemInfo: TSystemInfo); stdcall;
isWoW64: Bool;
SystemInfo: TSystemInfo;
const
PROCESSOR_ARCHITECTURE_AMD64 = 9;
PROCESSOR_ARCHITECTURE_IA64 = 6;
begin
Result := False;
Kernel32Handle := GetModuleHandle('KERNEL32.DLL');
if Kernel32Handle = 0 then
Kernel32Handle := LoadLibrary('KERNEL32.DLL');
if Kernel32Handle <> 0 then
begin
IsWOW64Process := GetProcAddress(Kernel32Handle,'IsWow64Process');
//GetNativeSystemInfo函数从Windows XP开始才有,而IsWow64Process函数从Windows XP SP2以及Windows Server 2003 SP1开始才有。
//所以使用该函数前最好用GetProcAddress。
GetNativeSystemInfo := GetProcAddress(Kernel32Handle,'GetNativeSystemInfo');
if Assigned(IsWow64Process) then
begin
IsWow64Process(GetCurrentProcess,isWoW64);
Result := isWoW64 and Assigned(GetNativeSystemInfo);
if Result then
begin
GetNativeSystemInfo(SystemInfo);
Result := (SystemInfo.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_AMD64) or
(SystemInfo.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_IA64);
end;
end;
end;
end;
delphi判断windows系统是64位还是32位
最新推荐文章于 2021-06-23 17:01:17 发布
本文介绍了一种检测当前运行的Windows系统是否为64位的方法,并提供了详细的Delphi代码实现。通过调用特定API函数并获取系统信息,可以判断应用程序是否在64位系统上以32位模式运行。
4323

被折叠的 条评论
为什么被折叠?



