关于在WIN CE下结束一个进程,比如结束explorer.exe
先要在StdAfx.h里添加<tlhelp32.h>和加上 toolhelp.lib
HINSTANCE hKernel = NULL;
HINSTANCE hProcessSnap = NULL;
PROCESSENTRY32 pe32 = {0};
DWORD dwTaskCount = 0;
HANDLE hProcess;
//状态toolhelp.dll动态连接库
hKernel = LoadLibrary(_T("toolhelp.dll"));
if (!hKernel)
{
AfxMessageBox(L"ERROR!!") ;
return 0;
}
//创建进程映射 TH32CS_SNAPPROCESS表示系统信息,TH32CS_SNAPALL表示所有信息,0表示当前进程
hProcessSnap = (HINSTANCE)CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
//如果失败,就退出
if (hProcessSnap == 0)//(HANDLE)-1)
{
AfxMessageBox(L"hProcessSnap ERROR!!") ;
return 0;
}
dwTaskCount = 0;
//设置保存进程相关内容的变量的结构大小
pe32.dwSize = sizeof(PROCESSENTRY32);
//获取第一个进程,并将此进程信息写入进程结构的变量pe32中
if (Process32First(hProcessSnap, &pe32))
{
do {
// LPTSTR pCurChar;
//DWORD A;
wchar_t aa[]=L"explorer.exe";
int i,j;
for(i=0,j=0;i<12;i++)
{
if(pe32.szExeFile[i]==aa[i])j++;
}
if(j>11)
{
hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);
//成功的话,终止进程
if (hProcess)
{
if (!TerminateProcess( hProcess, 1 ))
{
CloseHandle( hProcess );
//AfxMessageBox(L"OK!!");
return 1;
}
CloseHandle( hProcess );
return 0;
}
}
}
while (Process32Next(hProcessSnap, &pe32)); //移至下一个进程
}
else
dwTaskCount = 0; //
CloseHandle (hProcessSnap);
return 0;