一. wince中,如何根据进程名称获得该进程ID
DWORD GetProcessID(CString name)
{
HANDLE procSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(procSnap == INVALID_HANDLE_VALUE)
{
printf("CreateToolhelp32Snapshot failed, %d ",GetLastError());
return NULL;
}
//
DWORD processid = NULL;
PROCESSENTRY32 procEntry = { 0 };
procEntry.dwSize = sizeof(PROCESSENTRY32);
BOOL bRet = Process32First(procSnap,&procEntry);
while(bRet)
{
if(name.Compare(procEntry.szExeFile)==0) //这里做比较就可以了
{
processid = procEntry.th32ProcessID;
break;
}
bRet = Process32Next(procSnap, &procEntry);
}
CloseHandle(procSnap);
return processid;
}
加载toolhelp.dll和link里面写入toolhelp.lib,包含头文件 <tlhelp32.h>
二.关闭进程
// 获取进程ID
DWORD dwProcessId = GetProcessID(_T("explorer.exe"));;
// 从进程ID打开进程句柄
if(dwProcessId==NULL)
return;
HANDLE handle=OpenProcess(0,FALSE,dwProcessId);
if(handle==NULL)
{
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
0, // Default language