wince6 应用程序杀掉其他进程
来源:互联网 发布:c语言重点知识总结 编辑:程序博客网 时间:2024/05/29 18:36
//杀掉进程函数
HRESULT KillProcessByName(LPCTSTR lpProcessName)
{
HRESULT hr = S_OK;
HANDLE hnd;
PROCESSENTRY32 pe32;
if (NULL == lpProcessName)
{
return E_INVALIDARG;
}
//Takes a snapshot of the processes
hnd = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,NULL);
if(hnd == INVALID_HANDLE_VALUE)
{
DEBUGMSG(TRUE, TEXT("KillProcessByName: INVALID_HANDLE_VALUE"));
return E_FAIL;
}
pe32.dwSize = sizeof(pe32);
//enumerate the processes
BOOL bMore = Process32First(hnd,(LPPROCESSENTRY32)&pe32);
while(bMore)
{
_TCHAR aCompareProcessName[MAX_STR];
_tcscpy_s(aCompareProcessName,MAX_STR,pe32.szExeFile);
_tcslwr_s(aCompareProcessName,MAX_STR);
//Do: compare the process with the name
if(lstrcmp(lpProcessName,aCompareProcessName)==0)
{
DEBUGMSG(TRUE, (TEXT("The Process:%s with ID: %X will be killed"),
pe32.szExeFile,
pe32.th32ProcessID));
//Get the handler
HANDLE h_ProcessHandle = OpenProcess(
PROCESS_ALL_ACCESS,
FALSE,
pe32.th32ProcessID);
if(NULL == h_ProcessHandle)
{
DEBUGMSG(TRUE, TEXT("ERROR: The Process should already exit"));
CloseToolhelp32Snapshot(hnd);
hr = S_OK;
break;
}
DWORD exitCode =0;
//Terminate the process
if(!TerminateProcess(h_ProcessHandle,exitCode))
{
hr = E_FAIL;
break;
}
}//end of do
bMore = ::Process32Next(hnd,(LPPROCESSENTRY32)&pe32);
}// End of while
//closes a handle to a snapshot.
CloseToolhelp32Snapshot(hnd);
return hr;
HRESULT KillProcessByName(LPCTSTR lpProcessName)
{
HRESULT hr = S_OK;
HANDLE hnd;
PROCESSENTRY32 pe32;
if (NULL == lpProcessName)
{
return E_INVALIDARG;
}
//Takes a snapshot of the processes
hnd = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,NULL);
if(hnd == INVALID_HANDLE_VALUE)
{
DEBUGMSG(TRUE, TEXT("KillProcessByName: INVALID_HANDLE_VALUE"));
return E_FAIL;
}
pe32.dwSize = sizeof(pe32);
//enumerate the processes
BOOL bMore = Process32First(hnd,(LPPROCESSENTRY32)&pe32);
while(bMore)
{
_TCHAR aCompareProcessName[MAX_STR];
_tcscpy_s(aCompareProcessName,MAX_STR,pe32.szExeFile);
_tcslwr_s(aCompareProcessName,MAX_STR);
//Do: compare the process with the name
if(lstrcmp(lpProcessName,aCompareProcessName)==0)
{
DEBUGMSG(TRUE, (TEXT("The Process:%s with ID: %X will be killed"),
pe32.szExeFile,
pe32.th32ProcessID));
//Get the handler
HANDLE h_ProcessHandle = OpenProcess(
PROCESS_ALL_ACCESS,
FALSE,
pe32.th32ProcessID);
if(NULL == h_ProcessHandle)
{
DEBUGMSG(TRUE, TEXT("ERROR: The Process should already exit"));
CloseToolhelp32Snapshot(hnd);
hr = S_OK;
break;
}
DWORD exitCode =0;
//Terminate the process
if(!TerminateProcess(h_ProcessHandle,exitCode))
{
hr = E_FAIL;
break;
}
}//end of do
bMore = ::Process32Next(hnd,(LPPROCESSENTRY32)&pe32);
}// End of while
//closes a handle to a snapshot.
CloseToolhelp32Snapshot(hnd);
return hr;
}
调用
KillProcessByName(L"123.exe");//先杀掉进程再启动
- wince6 应用程序杀掉其他进程
- 结束杀掉其他进程的代码
- 怎么实现防止被其他进程杀掉
- wince6 两个应用程序进程间通信 OnCopyData
- 杀掉进程
- 杀掉进程
- 杀掉进程
- wince6 两个应用程序进程间通信 OnCopyData(改进)
- wince6 应用程序如何执行打开网页以及目录下其他exe,可执行文件
- 怎样杀掉进程
- 杀掉数据库用户进程
- ----XP 杀掉进程方法
- 终止会话,杀掉进程
- 自动杀掉进程脚本
- Oracle杀掉死锁进程
- 杀掉所有进程
- 杀掉死锁的进程
- 关于杀掉windows进程
- HDOJ——2066(dijkstra)
- Java反射原理及应用(二)
- SQL对应Java数据类型
- myeclipse jdbc连接mysql数据库
- CSS教程
- wince6 应用程序杀掉其他进程
- 面试感想之二
- C语言中解决变参问题的几个宏
- 每人都有两大炸弹的扎金花2012
- 嵌入式linux学习笔记之入门知识
- 关于宽字符(_UNICODE||UNICODE)和windows套接(socket)字编程问题
- 修改js Date对象添加年月日
- Socket通信(续)
- 去除织梦后台的赞助商广告