VC使用TerminateProcess结束进程实例
本文实例讲述了VC使用TerminateProcess结束进程的方法,分享给大家供大家参考。具体实现方法如下:
pszWindowTitle)
{
HANDLEhProcessHandle;
ULONGnProcessID;
HWNDTheWindow;
TheWindow=::FindWindow(NULL,pszWindowTitle);
::GetWindowThreadProcessId(TheWindow,&nProcessID);
hProcessHandle=::OpenProcess(PROCESS_TERMINATE,FALSE,
nProcessID);
return::TerminateProcess(hProcessHandle,4);
}
voidCZxDlg::OnOK()
{
//TODO:Addextravalidationhere
//CDialog::OnOK();
KillProcess("radmin.exe","RadminViewer")
}
voidCZxDlg::OnButton1()
{
HANDLE hSnapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hSnapShot == 0)
return;
PROCESSENTRY32 thePE;
thePE.dwSize = sizeof(PROCESSENTRY32);
//遍历正在运行的第一个系统进程
bool Status = Process32First(hSnapShot,&thePE);
bool bHaveFlag = false;
DWORD ProcessID=0;
while(Status)
{
//遍历正在运行的下一个系统进程
Status = Process32Next(hSnapShot,&thePE);
CStringjincheng="qq.exe";
jincheng.MakeLower();
//找到相应的进程**.exe
if(0==_tcscmp(thePE.szExeFile,_T(jincheng)))
{
bHaveFlag = true;
ProcessID = thePE.th32ProcessID;
//结束指定的进程ProcessID
if(!TerminateProcess(OpenProcess(PROCESS_TERMINATE||PROCESS_QUERY_INFORMATION,false,ProcessID),0))
{
AfxMessageBox("无法终止指定的进程!",MB_ICONWARNING||MB_OK);
}
break;
}
}
CloseHandle(hSnapShot);
}
自己改良后的代码如下:
{
HANDLE hSnapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(hSnapShot == 0)
return;
PROCESSENTRY32 thePE;
thePE.dwSize = sizeof(PROCESSENTRY32);
//遍历正在运行的第一个系统进程
bool Status = Process32First(hSnapShot,&thePE);
bool bHaveFlag = false;
DWORD ProcessID=0;
while(Status)
{
//遍历正在运行的下一个系统进程
Status = Process32Next(hSnapShot,&thePE);
CStringjincheng;
jincheng=thePE.szExeFile;
jincheng.MakeLower();
//找到相应的进程**.exe
if(jincheng==jin)
{
bHaveFlag = true;
ProcessID = thePE.th32ProcessID;
//AfxMessageBox(thePE.szExeFile,MB_ICONWARNING||MB_OK);
//结束指定的进程ProcessID
if(!TerminateProcess(OpenProcess(PROCESS_TERMINATE||PROCESS_QUERY_INFORMATION,false,ProcessID),0))
{
AfxMessageBox("无法终止指定的进程!",MB_ICONWARNING||MB_OK);
}
break;
}
}
CloseHandle(hSnapShot);
}
希望本文所述对大家的VC程序设计有所帮助。
相关文章
- PHP实现WebSocket实例详解
- Linux信号量:实现进程间同步的利器(linux信号量实例)
- Linux中唯一的进程实例(linux进程唯一实例)
- 字解决Oracle连接实例名称的方法(oracle连接实例名)
- 深入理解Linux多进程实例:提高系统运行效率与稳定性(linux多进程实例)
- 探索Redis进程寻找服务的实例(查找redis进程)
- 报表利用Oracle生成上月底报表的实例分析(oracle中上月底)
- php+mysql写的简单留言本实例代码
- ORACLE实例的后台进程
- 探讨如何在PHP开启gzip页面压缩实例
- android简单图片动画播放的实例代码
- C#实现Web文件上传的两种方法实例代码
- ASP.NET中的DataGridView绑定数据和选中行删除功能具体实例
- javajni调用c函数实例分享(java调用c函数)
- php定时计划任务与fsockopen持续进程实例
- node.js应用后台守护进程管理器Forever安装和使用实例
- Pythonmultiprocessing.Manager介绍和实例(进程间共享数据)
- python多进程操作实例
- smarty简单入门实例
- python基于mysql实现的简单队列以及跨进程锁实例详解
- Delphi实现毫秒级别的倒计时实例代码
- JavaScript中的类与实例实现方法
- Android开发之时间日期操作实例
- JQuery$.each遍历JavaScript数组对象实例
- python进程管理工具supervisor使用实例