判断是否是64位操作系统

简介:

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


复制代码
ExpandedBlockStart.gif 代码
 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   ,如需转载请自行联系原作者
相关文章
|
5月前
|
Windows
Windows系统的32位和64位系统区别
Windows系统的32位和64位系统区别
492 0
|
10月前
|
安全 Windows
一招教你判断Windows系统的版本 32Bit or 64Bit
一招教你判断Windows系统的版本 32Bit or 64Bit
444 0
|
Ubuntu Unix Linux
Linux-(在写CPU的过程中遇到的)
Linux-(在写CPU的过程中遇到的)
88 0
|
存储 Linux Windows
在 Linux 中检查交换空间大小的 4 种方法
交换空间是计算机用来存储数据的资源之一。如果您的计算机用完交换空间,它将开始变慢并且可能无法运行某些程序或任务。您可以使用如下命令检查交换空间的大小:swapon -s。
1031 0
|
Linux
【Linux】查看还剩余的内存
【Linux】查看还剩余的内存
212 0
【Linux】查看还剩余的内存
|
Linux
Linux如何查找某个时间点后生成的空文件
今天遇到一个特殊需求,需要找到某天(例如2017-04-13)以及这之后生成的空文件。那么这个要怎么处理呢?这个当然是用find命令来解决。如下所示, -mtime -5 表示查找距现在 5*24H 内修改过的文件 -type f -empty 表示空文件 由于需要以显示修改时间等文件信息,所以使用-exec ls -lt {}\; 具体命令如下所示: $ find .
1070 0
|
Linux
linux 查看cpu个数,内存情况,系统版本
查看cpu个数 总核数 = 物理CPU个数 * 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 查看每个物理CPU中...
1180 0