您的位置:首页 > 其它

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: