判断进程是64bit还是32bit
#pragma
region
Includes
#include
<stdio.h>
#include
<windows.h>
#pragma
endregion
BOOL DoesWin32MethodExist(PCWSTR pszModuleName, PCSTR pszMethodName){
HMODULE hModule = GetModuleHandle(pszModuleName);
if (hModule == NULL){
return FALSE;
}
return (GetProcAddress(hModule, pszMethodName) != NULL);
}
BOOL Is64BitOperatingSystem(){
#if defined(_WIN64)
return TRUE; // 64-bit programs run only on Win64
#elif
defined(_WIN32)
// 32-bit programs run on both 32-bit and 64-bit Windows
BOOL f64bitOS = FALSE;
return (DoesWin32MethodExist(L"kernel32.dll", "IsWow64Process") && (
IsWow64Process(GetCurrentProcess(), &f64bitOS) && f64bitOS));
#else
return FALSE; // 64-bit Windows does not support Win16
#endif
}
BOOL Is64BitProcess(HANDLE hProcess)
{BOOL f64bitProc = FALSE;
if (Is64BitOperatingSystem())
{
f64bitProc = !(IsWow64Process(hProcess, &f64bitProc) && f64bitProc
);
}
return f64bitProc;
}
int wmain(int argc, wchar_t* argv[])
{if (argc> 1)
{
DWORD dwProcessId = _wtoi(argv[1]);
if (dwProcessId == 0 /*conversion failed*/){
wprintf(L"Invalid process ID.\n");
return 1;
}
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, dwProcessId);
if (hProcess != NULL){
BOOL f64bitProc = Is64BitProcess(hProcess);
wprintf(L"The process is a %bit process.\n", f64bitProc ? L"64" : L"32");
CloseHandle(hProcess);
}
else
{wprintf(L"OpenProcess(%d) failed w/err 0x%08lx\n", dwProcessId, GetLastError());
}
}
else
{
BOOL f64bitProc = Is64BitProcess(GetCurrentProcess());
wprintf(L"Current process is a %bit process.\n", f64bitProc ? L"64" : L"32");
}
return 0;
}
http://www.cnblogs.com/lzjsky/archive/2010/12/01/1893169.html
判断进程是64bit还是32bit的更多相关文章
- INNO setup安装卸载钱判断进程中是否在运行总结
1.安装前判断进程中是否有程序在运行. [files] ; 安装前判断进程,dll文件放在inno的安装目录中Source: compiler:psvince.dll; Flags: dontcopy ...
- Shell实现判断进程是否存在并重新启动脚本
Shell实现判断进程是否存在并重新启动脚本 - superbfly的专栏 - CSDN博客 https://blog.csdn.net/superbfly/article/details/52513 ...
- inno setup 安装前判断进程是否存在,以及停止相应进程<转>
打包的时候遇到了这样的需求:假似用户都是傻瓜 式操作,如果更新安装程序的时候,之前的老程序还在运行这个时候如果你去提示让用户吧老程序手动退掉也不现实. 所以当遇到这种 ...
- linux脚本-判断进程是否存在,从而可以做预警处理..
count=`ps -ef | grep Seeyon | grep -v "grep" | wc -l` echo $count if [ $count -gt 0 ]; the ...
- DOS中判断进程是否存在的方法
这里分享的主要是通过批处理中先判断进程是否存在,然后再做出操作的实现代码,需要的朋友可以参考下 检测进程是否存在,并做出预定动作. tasklist /nh>d:\tddown~1\1.tx ...
- C++ 判断进程是否存在
原文:http://blog.csdn.net/u010803748/article/details/53927977?locationNum=2&fps=1 一.判断指定程序名的进程是否存在 ...
- 一个电脑同时运行 64bit 和 32bit 的eclipse 如何匹配 jdk环境
一个电脑同时运行 64bit 和 32bit 的 eclipse 如何匹配 jdk环境 1 eclipse 分 64bit 和 32bit 两种. 64bit的eclipse 只能搭配 64b ...
- erlang中判断进程是否存活
一个参数的方法是已知Pid判断进程是否存活.两个参数的方法是已知节点和Pid或进程名判断进程是否存活. is_process_alive(Pid) when is_pid(Pid)->rpc:c ...
- 3 Ways to Learn Whether a Windows Program is 64-bit or 32-bit
More than 90% of Windows 8.1 installations are 64-bit and, as a result, more and more people use 64- ...
随机推荐
- nginx 学习笔记【持续更新...】
1.如果在安装过程中出现以下错误 需要安装pcre库 解决方案:yum install pcre 2.如果nginx启动提示端口被占用,则停止该端口的服务再启动nginx,一般为httpd服务 解决方 ...
- LVS客户端启动脚本
在设置LVS客户端时,如果我们使用手工设置的话会比较麻烦.现在我们直接使用脚本来启动lvs-client就OK了,下面是一个简单的脚本. VIP地址:10.0.0.230,把文件放到/etc/init ...
- jQuery 源码分析和使用心得 - 关于源码
说到jQuery, 大家可能直觉的认为jQuery的源码应该就是一个jquery.xx.js这样的一个文件. 但是看到真正的源码的时候, 整个人都思密达了.jQuery的源码做的事远比你想象的多, 为 ...
- java版括号匹配检测
做一个空栈,读入字符直到结尾.如果读入一个封闭符号,空栈时报错;非空时弹出栈尾字符,如果不匹配则报错.否则读入为开放字符,压入栈中.最后如果栈空,返回true. 其中用到MyStack类,详情请见 p ...
- Google机器学习教程心得(三) 好的feature
什么造就好的Feature Google Machine Learning Recipes 3 官方中文博客 http://chinagdg.org/2016/03/machine-learning- ...
- POJ 3484 Showstopper(二分答案)
[题目链接] http://poj.org/problem?id=3484 [题目大意] 给出n个等差数列的首项末项和公差.求在数列中出现奇数次的数.题目保证至多只有一个数符合要求. [题解] 因为只 ...
- python循环,判断及函数
python中的for循环 #for循环格式(类似Java中的foreach):for 标识符 in 列表名称 : >>> movies = ["movie1", ...
- linux中ctrl+z、ctrl+d和ctrl+c的区别
ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样.ctrl+c是强制中断程序的执行,而ctrl+z的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用f ...
- iOS第三方库-CocoaLumberjack-DDLog (转)
原文:http://blog.sina.com.cn/s/blog_7b9d64af0101kkiy.html 发现一个,很厉害的小工具,让xCode控制台输出文本有颜色! 闲话不说,上代码. 大概需 ...
- oracle转换数字到格式化字符串
问题描写叙述 oracle假设存储number(20,2)数据,0数据库中为0.00,2.1数据库中为2.10,3.88存储为3.88, 假设直接从数据库中取出相应显示为: 0 2.1 3.88 保留 ...