vc进程和模块查询
2017-12-25 11:30
183 查看
李国帅编于2009-02-25 10:17
查询进程是否打开
#include <Psapi.h> #pragma comment(lib,"Psapi.lib") //enum process to find a certain module BOOL IsAppRun(CString modulename) { DWORD buf[4096]; DWORD num; TCHAR filenamebuf[_MAX_PATH + 1]; HMODULE hModule; DWORD cbReturned; BOOL bret = FALSE; BOOL bfound = FALSE; CString msg; bret = EnumProcesses(buf, 4095, &num); if (!bret) { printf("Error EnumProcesses"); return FALSE; } for (int i = 0; i < (int)num; i++) { HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, buf[i]); if (hProcess == NULL) continue; bret = EnumProcessModules(hProcess, &hModule, sizeof(hModule), &cbReturned); if (bret) { DWORD dwret = GetModuleFileNameEx(hProcess, hModule, filenamebuf, _MAX_PATH); CloseHandle(hProcess); if (dwret == 0) { msg.Format("%d", GetLastError()); printf(msg); break; } else { TCHAR* pfind = _tcsstr(filenamebuf, modulename); if (pfind) { bfound = TRUE; break; } } } } return bfound; } BOOL IsAppRun(CString modulename); int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) { CString ModuleName("TSRun.exe"); BOOL bfound = IsAppRun(ModuleName); if (bfound) printf("Found it"); else printf("Not found"); system("pause"); return 0; } |
相关文章推荐
- ZwQueryVirtualMemory查询进程模块
- VC++实现枚举进程与模块
- VC判断64位和32位模块进程、枚举进程
- vc++进程注入钩子DLL通用模块
- VC++实现枚举进程与模块
- VC中遍历目标进程中的模块
- VC++实现枚举进程与模块
- VC获得系统当前进程以及某进程使用的模块的方法
- vc++进程注入钩子DLL通用模块开源
- vc++进程注入钩子DLL通用模块开源
- VC++枚举进程与模块
- Windows的cmd命令查询指定端口占用的进程并关闭
- Python 创建子进程模块subprocess详解
- sqlserver 查询当前阻塞进程 并杀掉
- 通过PEB的Ldr枚举进程内所有已加载的模块
- vc动态升级模块的设计与实现[网络中的虚拟实验平台]
- 如何优雅地实现Python通用多线程/进程并行模块
- VC判断进程是否存在
- VC++中如何获得一个当前进程的运行目录
- VC++结束程序进程