C#判断一个进程是否存在不是64位的

判断某程序是64位还是32位 - CSDN博客
判断某程序是64位还是32位
1. 用代码判断本身
if (IntPtr.Size == 4)
&&& // 32-bit
else if (IntPtr.Size == 8)
&&& // 64-bit
2. 用代码判断正在运行的其他进程
3. 不用代码判断任意exe,看第二个回复
If you have a hex editor program, just open your file with it and shortly after the standard header intro stuff (like &This program cannot be run in DOS mode...&) you will see either
&PE..L& (hex code: C) = 32 bit
&PE..d+& (hex code: ) = 64 bit
其实普通文本编辑器就行(比如notepad),打开之后搜索PE就会得到类似下面的结果
本文已收录于以下专栏:
相关文章推荐
1.编译器没有显式的指定。
2.需要根据32,64做不同的处理.
#include &stdio.h&
int main(int argc,char * argv[])
判断动态链接库.dll和应用程序.exe是32位还是64位
怎样判断一个exe可执行程序是32位的还是64位的
拿到一个exe格式的可执行应用程序,想知道它在32位的电脑上能不能正常使用。一般来说在64位的windows7下,打开任务管理器可以知道哪些程序...
在32位WINDOWS系统上开发64位应用程序
有些时候需要开发WINDOWS 64位应用程序,但不想安装64位操作系统,所以需要在32位系统下开发64位应用。其步骤并不复...
大部分Linux发行套件都有针对x86_64处理器的版本。比较典型的x86_64的处理器有ADM Athlon II和英特尔Xeon。因为这些Linux发行套件都有自己专用的软件源,这些软件源会为提供...
X64位系统IIS7下支持32位asp.net程序
最近在windows2008 x64位系统下的IIS7下部署asp.net程序。
vs2005或vs2008默认的情况下是Any cpu ...
应对32位程序在64位系统上访问注册表和文件自动转向问题
转载地址http://blog.csdn.net/qq_/article/details/
今天在ubuntu64位机器上跑小甲鱼VIM练习小程序(32位的......
我们最近完成的一个项目是移植一个大型的32位应用程序,它可在64位环境中支持11个操作系统平台,并且程序的源代码超过了30万行。由于此32位程序是在几年前分成几部分开发而成,所以极有可能代码是由不同的...
因为一些呵呵的原因,我们写64位程序时需要调用32位的dll,或者32位程序需要调用64位的dll
至于为什么64位程序不能调用32位的dll,那是因为......你懂得
项目中我也遇到了这么一个...
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)本帖子已过去太久远了,不再提供回复功能。2007年7月 总版技术专家分月排行榜第三
2007年9月 Oracle大版内专家分月排行榜第一2007年7月 Oracle大版内专家分月排行榜第一2007年6月 Oracle大版内专家分月排行榜第一2008年7月 Delphi大版内专家分月排行榜第一2008年3月 Delphi大版内专家分月排行榜第一2008年2月 Delphi大版内专家分月排行榜第一2007年12月 Delphi大版内专家分月排行榜第一2007年11月 Delphi大版内专家分月排行榜第一2007年10月 Delphi大版内专家分月排行榜第一2007年9月 Delphi大版内专家分月排行榜第一2007年7月 Delphi大版内专家分月排行榜第一2007年6月 Delphi大版内专家分月排行榜第一2007年4月 Delphi大版内专家分月排行榜第一2007年1月 Delphi大版内专家分月排行榜第一
2010年 总版技术专家分年内排行榜第一2009年 总版技术专家分年内排行榜第一
2011年 总版技术专家分年内排行榜第二
2009年5月 .NET技术大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
本帖子已过去太久远了,不再提供回复功能。C#如何判断操作系统位数是32位还是64位 - 憨熊之家 - 博客园
随笔 - 15, 文章 - 10, 评论 - 5, 引用 - 0
方法一:对于来说,调用WMI是一种简单易行的方式。我们可以用Win32_Processor类里面的AddressWidth属性来表示系统的位宽。AddressWidth的值受CPU和的双重影响。具体的值如下面的表格所示:
AddressWidth = 32
AddressWidth = 32
AddressWidth = 64
可以用下面的C#代码得到AddressWidth的值(注意需添加引用System.Management)
public static string Detect3264()
ConnectionOptions oConn = new ConnectionOptions();
System.Management.ManagementScope oMs = new System.Management.ManagementScope(&\\\\localhost&, oConn);
System.Management.ObjectQuery oQuery = new System.Management.ObjectQuery(&select AddressWidth from Win32_Processor&);
ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oMs, oQuery);
ManagementObjectCollection oReturnCollection = oSearcher.Get();
string addressWidth = null;
foreach (ManagementObject oReturn in oReturnCollection)
addressWidth = oReturn[&AddressWidth&].ToString();
return addressW
type = Environment.Is64BitOperatingS
Console.WriteLine(type);
如返回值为True则表示是64位,如返回值为False则表示为32位。方法三:这个方法也是最直接的方法,但是有条件限制,例用IntPtr结构的size属性来查看系统的位宽命名空间是S前题是程序需要采用any/CPU的方式进行编辑;正常情况下int的位宽是4位,即是32位操作系统。
if (IntPtr.Size == 8)
else if (IntPtr.Size == 4)
//...NotSupport
方法四:64位Wnidows 里面有个叫Wow64 的模拟器技术,可以使32位的程序在64位Windows 上运行。 当你想在程序里面针对32b位/ 64位系统执行不同代码的时候, 需要判断操作系统是32位还是64位。 使用 Windows API函数 GetNativeSystemInfo 可以获得这个信息。
SYSTEM_INFO
GetNativeSystemInfo(&si);
if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 ||
si.wProcessorArchitecture != PROCESSOR_ARCHITECTURE_IA64 )
//64 位操作系统
// 32 位操作系统
另外,Windows API 还提供了 IsWow64Process 函数判断程序是不是运行在Wow64模拟器之上。
BOOL bIsWow64 = FALSE;
IsWow64Process(GetCurrentProcess(), &bIsWow64);
需要注意是GetNativeSystemInfo&&函数从Windows XP 开始才有, 而 IsWow64Process&&函数从 Windows XP with SP2 以及 Windows Server 2003 with SP1 开始才有。 所以使用该函数的时候最好用GetProcAddress。
typedef void (WINAPI *LPFN_PGNSI)(LPSYSTEM_INFO);
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_PGNSI pGNSI = (LPFN_PGNSI ) GetProcAddress(
GetModuleHandle(TEXT(&kernel32.dll&)),
&GetNativeSystemInfo&);
LPFN_ISWOW64PROCESS
fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress(
GetModuleHandle(TEXT(&kernel32&)),&IsWow64Process&);

我要回帖

更多关于 c 判断 进程32位64位 的文章

 

随机推荐