vc判断指定进程或程序名是否存在和进程为64或者32位
一、判断指定程序名的进程是否存在
BOOL EnumWindows( WNDENUMPROC lpEnumFunc, // pointer to callback function LPARAM lParam // application-defined value);
The EnumWindows function enumerates all top-level windows on the screen by passing the handle to each window, in turn, to an application-defined callback function. EnumWindows continues until the last top-level window is enumerated or the callback function returns FALSE.
BOOL CALLBACK IpEnumFunc(HWND hwnd,LPARAM lParam)
{
char wndName[100];
::GetWindowText(hwnd,wndName,sizeof(wndName));
if(wndName!="")
{
if(strcmp(wndName,name1)==0)
{
WndHnd=hwnd;
flag=1;
}
}
return 1;
}
二、判断指定进程名的进程是否存在
DWORD GetProcessidFromName(LPCTSTR name)
{
PROCESSENTRY32 pe;
DWORD id=0;
HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
pe.dwSize=sizeof(PROCESSENTRY32);
if(!Process32First(hSnapshot,&pe))
return 0;
while(1)
{
pe.dwSize=sizeof(PROCESSENTRY32);
if(Process32Next(hSnapshot,&pe)==FALSE)
break;
if(strcmp(pe.szExeFile,name)==0)
{
id=pe.th32ProcessID;
break;
}
}
CloseHandle(hSnapshot);
return id;
}
如果返回值不为零,则存在,否则不存在。
三/*判断是否是x64进程
参 数:进程句柄
返回值:是x64进程返回TRUE,否则返回FALSE
*/
BOOL IsWow64ProcessEx(HANDLE hProcess)
{
/*判断ntdll中的导出函数,可知是否是64位OS*/
HMODULE hMod=GetModuleHandle("ntdll.dll");
FARPROC x64fun=::GetProcAddress(hMod,"ZwWow64ReadVirtualMemory64");
if(!x64fun) return FALSE;
/*利用IsWow64Process判断是否是x64进程*/
typedef BOOL(WINAPI *pfnIsWow64Process)(HANDLE,PBOOL);
pfnIsWow64Process fnIsWow64Process=NULL;
hMod=GetModuleHandle("kernel32.dll");
fnIsWow64Process=(pfnIsWow64Process)GetProcAddress(hMod,"IsWow64Process");
if(!fnIsWow64Process) return FALSE; //如果没有导出则判定为32位
BOOL bX64;
if(!fnIsWow64Process(hProcess,&bX64)) return FALSE;
return !bX64;
}
vc判断指定进程或程序名是否存在和进程为64或者32位相关推荐
- C++判断系统位数(64位或32位)
C++判断系统位数[64位或32位] 实现方法 原理 函数 实例 总结 实现方法 本文主要介绍1种兼容性强&简单的判断方法,希望对你有帮助; 原理 64位系统会在c:\Windows创建Sys ...
- Windows编程-判断一个程序是64还是32位的小程序
//编写一个判断进程是否位64位程序的函数 typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); LPFN_ISWOW64PROCES ...
- Wow64(32位进程)注入DLL到64位进程
http://blog.poxiao.me/p/wow64-process-inject-dll-into-x64-process/#Wow64环境下32位进程注入64位进程 DLL注入 向其他进程注 ...
- 32位程序注入64位DLL到64位进程
向其他进程注入DLL通常的做法是通过调用CreateRemoteThread这个API在目标进程内创建一个远程线程,用这个线程来调用LoadLibraryA或LoadLibraryW(下文统称Load ...
- c语言程序判断32位还是64位,c++ 判断是64位还是32位系统的实例
1.IsWow64Process 确定指定进程是否运行在64位操作系统的32环境(Wow64)下. 语法 BOOL WINAPI IsWow64Process( __in HANDLE hProces ...
- linux+kill+进程和线程,什么是程序,进程和线程?三者之间有何关系?
进程 进程与线程的历史 进程与线程之间的关系 重点 进程 和 线程的概念 进程和程序关系 cpu在执行程序时什么叫进程 swap 内存的缺页异常 大的异常 小的异常 内存映射mmap 内存泄露 tas ...
- VB判断指定名字的进程是否存在函数
'============================================================= '函数名:CheckApplicationIsRun '作 用:判断进程是 ...
- VC++如何判断当前操作系统是32位还是64位?
IsWow64Process 确定指定进程是否运行在64位操作系统的32环境(Wow64)下. 64位系统 运行64位程序 返回false 64位系统 运行32位程序 返回true 32位系统 运行6 ...
- VC++判断文件或文件夹是否存在(转)
VC++判断文件或文件夹是否存在 在Windows应用项目中,几乎总会需要用到一些文件系统相关的函数,如:判断文件是否存在,判断文件夹是否为空,删除文件夹及其所有子项,计算文件夹的大小,等等.不知为何 ...
最新文章
- linux安装无线电软件,基于Linux的软件无线电系统软件平台的研究与实现
- qt插件元数据不包含一个有效的元数据_Qt5个人软件插件使用(低级API)
- git 拉代码_一篇文章理清Git
- oracle 10g安装黑框消失,win7下安装和卸载oracle 10g
- OPA 18 - iTeardownMyAppFrame
- Educational Codeforces Round 112 (Rated for Div. 2)
- Vue + Spring Boot 项目实战(四):前后端结合测试(登录页面开发)
- kd树介绍(KNN算法引出)
- golang http 返回html文件_用Golang写爬虫(三) - 使用goquery
- 从数学到计算机 从莱布尼兹到冯诺依曼 从数理逻辑到算法分析
- 编译原理---NFA转化为DFA---DFA最小化(自己看)
- n=sizeof(a)/sizeof(int)的含义(C语言)
- 图片怎么批量修改尺寸
- 打开计算机任务栏有桌面没,电脑桌面任务栏不显示打开的窗口怎么办
- js 判断3D空间中 三点共线
- Luogu3387 缩点
- python 机器人运动仿真_基于ros平台的移动机器人的设计与运动仿真-创新创业训练计划.pdf...
- 最近邻方法和向量模型——第一部分
- python笔记 基础语法·第14课 【三局两胜角斗场小游戏,类与对象】
- 给大家讲个笑话,拿了个offer,因为体检查出脂肪肝,公司把我拒绝了!
热门文章
- mybatis 两种CRUD操作操作(资源来子孤傲苍狼)
- ajax(面试重点)
- vue+vant2—篇3—定制主题色
- “微信”影响力报告:用数据读懂微信五大业务
- day05_雷神_函数进阶
- 更新了驱动导致电脑某个设备失效的解决方法
- 因乐视网IPO财务造假,多位发审委委员被抓;旷视科技完成 4.6亿美元C轮融资丨价值早报
- iPhone9上市延迟,iPhone11大降价抢占市场
- 3分钟带你看懂巨龙信息大数据服务总线
- c语言typedef的用法,C语言中typedef用法总结,看完就能像编程老手一样熟练运用...