怎样根据进程名得到其 ID(我想得到Explorer.exe的ID) 怎样根据进程名得到其 ID(我想得到Explorer.exe的ID) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 列举当前所有进程,找到进程名符合你要求的进程idvoid CEnumProcessView::GetNTPsInfo(){ ENUMPROCESSES EnumProcesses; ENUMPROCESSMODULES EnumProcessModules; GETMODULEFILENAME GetModuleFileName; GETPROCESSMEMORYINFO GetProcessMemoryInfo; PROCESS_MEMORY_COUNTERS MemoryInfo; FILETIME flKernelTime; FILETIME flUserTime; FILETIME flCreateTime; FILETIME flExitTime; FILETIME flTotalTime; SYSTEMTIME stSystemTime; DWORD dwProcID[1024]; DWORD dwProcNum; HMODULE ModuleID[1024]; DWORD dwModuleNum; char cFileName[MAX_PATH]; DWORD i = 0; HANDLE hProcess; hPsapi = LoadLibrary("psapi.dll"); if(hPsapi == NULL) { MessageBox("Load psapi.dll error"); return; } EnumProcesses = (ENUMPROCESSES)GetProcAddress((HINSTANCE)hPsapi, "EnumProcesses"); EnumProcessModules = (ENUMPROCESSMODULES)GetProcAddress((HINSTANCE)hPsapi, "EnumProcessModules"); GetModuleFileName = (GETMODULEFILENAME)GetProcAddress((HINSTANCE)hPsapi, "GetModuleFileNameExA"); GetProcessMemoryInfo = (GETPROCESSMEMORYINFO)GetProcAddress((HINSTANCE)hPsapi, "GetProcessMemoryInfo"); if(EnumProcesses == NULL || GetProcessMemoryInfo == NULL || GetModuleFileName == NULL || GetProcessMemoryInfo == NULL) { MessageBox("GetProcAddress() error"); return; } EnumProcesses(dwProcID, sizeof(dwProcID), &dwProcNum); dwProcNum = dwProcNum / sizeof(DWORD); for(i = 0; i < dwProcNum; i++) { hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, dwProcID[i]); DWORD dwRet = GetLastError(); EnumProcessModules(hProcess, ModuleID, sizeof(ModuleID), &dwModuleNum); dwModuleNum = dwModuleNum / sizeof(HMODULE); if(GetModuleFileName(hProcess, ModuleID[0], cFileName, sizeof(cFileName))) { GetProcessTimes(hProcess, &flCreateTime, &flExitTime, &flKernelTime, &flUserTime);// DwordToFileTime((FileTimeToDword(&flKernelTime) - FileTimeToDword(&flCreateTime)) // + (FileTimeToDword(&flUserTime) - FileTimeToDword(&flCreateTime)), &flTotalTime);// FileTimeToSystemTime(&flTotalTime, &stSystemTime); GetProcessMemoryInfo(hProcess, &MemoryInfo, sizeof(PROCESS_MEMORY_COUNTERS)); strcpy(m_ProcessInfoList[m_ProcessCount].cFileName, cFileName); m_ProcessInfoList[m_ProcessCount].dwProcessID = dwProcID[i]; m_ProcessInfoList[m_ProcessCount].iMemSize = MemoryInfo.WorkingSetSize / 1024; m_ProcessCount++; } CloseHandle(hProcess); }} void CEnumProcessView::GetWin9xPsInfo(){ HANDLE hProcess; PROCESSENTRY32 pePsEntry; pePsEntry.dwSize = sizeof(pePsEntry); hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if(Process32First(hProcess, &pePsEntry)) { while(1) { if(!Process32Next(hProcess, &pePsEntry)) { break; } strcpy(m_ProcessInfoList[m_ProcessCount].cFileName, pePsEntry.szExeFile); m_ProcessInfoList[m_ProcessCount].dwProcessID = pePsEntry.th32ProcessID; m_ProcessInfoList[m_ProcessCount].iMemSize = 0; m_ProcessCount++; } } CloseHandle(hProcess);} 列举当前所有进程,找到进程名符合你要求的进程idvoid CEnumProcessView::GetNTPsInfo(){ ENUMPROCESSES EnumProcesses; ENUMPROCESSMODULES EnumProcessModules; GETMODULEFILENAME GetModuleFileName; GETPROCESSMEMORYINFO GetProcessMemoryInfo; PROCESS_MEMORY_COUNTERS MemoryInfo; FILETIME flKernelTime; FILETIME flUserTime; FILETIME flCreateTime; FILETIME flExitTime; FILETIME flTotalTime; SYSTEMTIME stSystemTime; DWORD dwProcID[1024]; DWORD dwProcNum; HMODULE ModuleID[1024]; DWORD dwModuleNum; char cFileName[MAX_PATH]; DWORD i = 0; HANDLE hProcess; hPsapi = LoadLibrary("psapi.dll"); if(hPsapi == NULL) { MessageBox("Load psapi.dll error"); return; } EnumProcesses = (ENUMPROCESSES)GetProcAddress((HINSTANCE)hPsapi, "EnumProcesses"); EnumProcessModules = (ENUMPROCESSMODULES)GetProcAddress((HINSTANCE)hPsapi, "EnumProcessModules"); GetModuleFileName = (GETMODULEFILENAME)GetProcAddress((HINSTANCE)hPsapi, "GetModuleFileNameExA"); GetProcessMemoryInfo = (GETPROCESSMEMORYINFO)GetProcAddress((HINSTANCE)hPsapi, "GetProcessMemoryInfo"); if(EnumProcesses == NULL || GetProcessMemoryInfo == NULL || GetModuleFileName == NULL || GetProcessMemoryInfo == NULL) { MessageBox("GetProcAddress() error"); return; } EnumProcesses(dwProcID, sizeof(dwProcID), &dwProcNum); dwProcNum = dwProcNum / sizeof(DWORD); for(i = 0; i < dwProcNum; i++) { hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, dwProcID[i]); DWORD dwRet = GetLastError(); EnumProcessModules(hProcess, ModuleID, sizeof(ModuleID), &dwModuleNum); dwModuleNum = dwModuleNum / sizeof(HMODULE); if(GetModuleFileName(hProcess, ModuleID[0], cFileName, sizeof(cFileName))) { GetProcessTimes(hProcess, &flCreateTime, &flExitTime, &flKernelTime, &flUserTime);// DwordToFileTime((FileTimeToDword(&flKernelTime) - FileTimeToDword(&flCreateTime)) // + (FileTimeToDword(&flUserTime) - FileTimeToDword(&flCreateTime)), &flTotalTime);// FileTimeToSystemTime(&flTotalTime, &stSystemTime); GetProcessMemoryInfo(hProcess, &MemoryInfo, sizeof(PROCESS_MEMORY_COUNTERS)); strcpy(m_ProcessInfoList[m_ProcessCount].cFileName, cFileName); m_ProcessInfoList[m_ProcessCount].dwProcessID = dwProcID[i]; m_ProcessInfoList[m_ProcessCount].iMemSize = MemoryInfo.WorkingSetSize / 1024; m_ProcessCount++; } CloseHandle(hProcess); }} mfc扩展dll调用出错 怎么开发类似Powerpoint或PDF样式的软件 求98下禁用声卡设备的代码 关于GetAsyncKeyState返回值的问题 请问 如何关闭指定的程序(如internat.exe)?高分!! 小小问题:在程序中使用了第三方ActiveX控件,最后要发布时怎么办? 如何在开始菜单的程序组里添加项目?用Shell实现,不要用DDE 有关“继承”的问题! AfxLoadString的问题 我在有的程序中看到在定义变量的是后前面加register,不知道是什么意思? 收集精确定时器masterz快来回答啊
{
ENUMPROCESSES EnumProcesses;
ENUMPROCESSMODULES EnumProcessModules;
GETMODULEFILENAME GetModuleFileName;
GETPROCESSMEMORYINFO GetProcessMemoryInfo;
PROCESS_MEMORY_COUNTERS MemoryInfo;
FILETIME flKernelTime;
FILETIME flUserTime;
FILETIME flCreateTime;
FILETIME flExitTime;
FILETIME flTotalTime;
SYSTEMTIME stSystemTime;
DWORD dwProcID[1024];
DWORD dwProcNum;
HMODULE ModuleID[1024];
DWORD dwModuleNum;
char cFileName[MAX_PATH];
DWORD i = 0;
HANDLE hProcess; hPsapi = LoadLibrary("psapi.dll");
if(hPsapi == NULL)
{
MessageBox("Load psapi.dll error");
return;
} EnumProcesses = (ENUMPROCESSES)GetProcAddress((HINSTANCE)hPsapi, "EnumProcesses");
EnumProcessModules = (ENUMPROCESSMODULES)GetProcAddress((HINSTANCE)hPsapi, "EnumProcessModules");
GetModuleFileName = (GETMODULEFILENAME)GetProcAddress((HINSTANCE)hPsapi, "GetModuleFileNameExA");
GetProcessMemoryInfo = (GETPROCESSMEMORYINFO)GetProcAddress((HINSTANCE)hPsapi, "GetProcessMemoryInfo");
if(EnumProcesses == NULL || GetProcessMemoryInfo == NULL
|| GetModuleFileName == NULL || GetProcessMemoryInfo == NULL)
{
MessageBox("GetProcAddress() error");
return;
} EnumProcesses(dwProcID, sizeof(dwProcID), &dwProcNum);
dwProcNum = dwProcNum / sizeof(DWORD);
for(i = 0; i < dwProcNum; i++)
{
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, dwProcID[i]);
DWORD dwRet = GetLastError();
EnumProcessModules(hProcess, ModuleID, sizeof(ModuleID), &dwModuleNum);
dwModuleNum = dwModuleNum / sizeof(HMODULE);
if(GetModuleFileName(hProcess, ModuleID[0], cFileName, sizeof(cFileName)))
{
GetProcessTimes(hProcess, &flCreateTime, &flExitTime, &flKernelTime, &flUserTime);
// DwordToFileTime((FileTimeToDword(&flKernelTime) - FileTimeToDword(&flCreateTime))
// + (FileTimeToDword(&flUserTime) - FileTimeToDword(&flCreateTime)), &flTotalTime);
// FileTimeToSystemTime(&flTotalTime, &stSystemTime);
GetProcessMemoryInfo(hProcess, &MemoryInfo, sizeof(PROCESS_MEMORY_COUNTERS));
strcpy(m_ProcessInfoList[m_ProcessCount].cFileName, cFileName);
m_ProcessInfoList[m_ProcessCount].dwProcessID = dwProcID[i];
m_ProcessInfoList[m_ProcessCount].iMemSize = MemoryInfo.WorkingSetSize / 1024;
m_ProcessCount++;
}
CloseHandle(hProcess);
}
}
{
HANDLE hProcess;
PROCESSENTRY32 pePsEntry; pePsEntry.dwSize = sizeof(pePsEntry);
hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if(Process32First(hProcess, &pePsEntry))
{
while(1)
{
if(!Process32Next(hProcess, &pePsEntry))
{
break;
}
strcpy(m_ProcessInfoList[m_ProcessCount].cFileName, pePsEntry.szExeFile);
m_ProcessInfoList[m_ProcessCount].dwProcessID = pePsEntry.th32ProcessID;
m_ProcessInfoList[m_ProcessCount].iMemSize = 0;
m_ProcessCount++;
}
} CloseHandle(hProcess);
}
{
ENUMPROCESSES EnumProcesses;
ENUMPROCESSMODULES EnumProcessModules;
GETMODULEFILENAME GetModuleFileName;
GETPROCESSMEMORYINFO GetProcessMemoryInfo;
PROCESS_MEMORY_COUNTERS MemoryInfo;
FILETIME flKernelTime;
FILETIME flUserTime;
FILETIME flCreateTime;
FILETIME flExitTime;
FILETIME flTotalTime;
SYSTEMTIME stSystemTime;
DWORD dwProcID[1024];
DWORD dwProcNum;
HMODULE ModuleID[1024];
DWORD dwModuleNum;
char cFileName[MAX_PATH];
DWORD i = 0;
HANDLE hProcess; hPsapi = LoadLibrary("psapi.dll");
if(hPsapi == NULL)
{
MessageBox("Load psapi.dll error");
return;
} EnumProcesses = (ENUMPROCESSES)GetProcAddress((HINSTANCE)hPsapi, "EnumProcesses");
EnumProcessModules = (ENUMPROCESSMODULES)GetProcAddress((HINSTANCE)hPsapi, "EnumProcessModules");
GetModuleFileName = (GETMODULEFILENAME)GetProcAddress((HINSTANCE)hPsapi, "GetModuleFileNameExA");
GetProcessMemoryInfo = (GETPROCESSMEMORYINFO)GetProcAddress((HINSTANCE)hPsapi, "GetProcessMemoryInfo");
if(EnumProcesses == NULL || GetProcessMemoryInfo == NULL
|| GetModuleFileName == NULL || GetProcessMemoryInfo == NULL)
{
MessageBox("GetProcAddress() error");
return;
} EnumProcesses(dwProcID, sizeof(dwProcID), &dwProcNum);
dwProcNum = dwProcNum / sizeof(DWORD);
for(i = 0; i < dwProcNum; i++)
{
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, dwProcID[i]);
DWORD dwRet = GetLastError();
EnumProcessModules(hProcess, ModuleID, sizeof(ModuleID), &dwModuleNum);
dwModuleNum = dwModuleNum / sizeof(HMODULE);
if(GetModuleFileName(hProcess, ModuleID[0], cFileName, sizeof(cFileName)))
{
GetProcessTimes(hProcess, &flCreateTime, &flExitTime, &flKernelTime, &flUserTime);
// DwordToFileTime((FileTimeToDword(&flKernelTime) - FileTimeToDword(&flCreateTime))
// + (FileTimeToDword(&flUserTime) - FileTimeToDword(&flCreateTime)), &flTotalTime);
// FileTimeToSystemTime(&flTotalTime, &stSystemTime);
GetProcessMemoryInfo(hProcess, &MemoryInfo, sizeof(PROCESS_MEMORY_COUNTERS));
strcpy(m_ProcessInfoList[m_ProcessCount].cFileName, cFileName);
m_ProcessInfoList[m_ProcessCount].dwProcessID = dwProcID[i];
m_ProcessInfoList[m_ProcessCount].iMemSize = MemoryInfo.WorkingSetSize / 1024;
m_ProcessCount++;
}
CloseHandle(hProcess);
}
}