VC使用TerminateProcess结束进程实例
本文实例讲述了VC使用TerminateProcess结束进程的方法,分享给大家供大家参考。具体实现方法如下:
复制代码 代码如下:
int KillProcess(LPCSTR pszClassName, LPCSTR
pszWindowTitle)
{
HANDLE hProcessHandle;
ULONG nProcessID;
HWND TheWindow;
TheWindow = ::FindWindow( NULL, pszWindowTitle );
::GetWindowThreadProcessId( TheWindow, &nProcessID );
hProcessHandle = ::OpenProcess( PROCESS_TERMINATE, FALSE,
nProcessID );
return ::TerminateProcess( hProcessHandle, 4 );
}
void CZxDlg::OnOK()
{
// TODO: Add extra validation here
// CDialog::OnOK();
KillProcess("radmin.exe","Radmin Viewer")
}
void CZxDlg::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);
CString jincheng ="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);
}
自己改良后的代码如下:
复制代码 代码如下:
void kill(CString jin)
{
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);
CString jincheng ;
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程序设计有所帮助。
VC使用TerminateProcess结束进程实例相关推荐
- 使用ExitProcess()结束本进程、TerminateProcess 结束进程
进程只是提供了一段地址空间和内核对象,其运行时通过在其地址空间内的主线程来体现的.当主线程的进入点函数返回时,进程也就随之结束.这种进程的终止方式是进程的正常退出,进程中的所有线程资源都能够得到正确的 ...
- 使用ExitProcess()结束本进程,TerminateProcess()结束进程
进程只是提供了一段地址空间和内核对象,其运行时通过在其地址空间内的主线程来体现的.当主线程的进入点函数返回时,进程也就随之结束.这种进程的终止方式是进程的正常退出,进程中的所有线程资源都能够得到正确的 ...
- 使用TerminateProcess结束进程时,错误码为5的解决方法
最近在win7上,VS2010开发环境中,写一个守护进程的程序,程序内容:发现目标进程挂起后,将其kill,然后重启. 可是,遇到了一个问题,就是在使用TerminateProcess进行kill目标 ...
- c/c++ 结束进程的方法
1.使用ExitProcess()结束进程 进程只是提供了一段地址空间和内核对象,其运行时通过在其地址空间内的主线程来体现的.当主线程的进入点函数返回时,进程也就随之结束.这种进程的终止方式 ...
- VC/MFC 强制结束当前进程
最近接手一个MFC老项目,Bug太多,主线程退出的时候,也不管子线程死活,直接退出,导致子线程又去访问那些被释放的资源,结果程序无法关闭,或者导致进程在后台驻留了. 这里提供一种简单粗暴的方法: // ...
- python 单一进程实例 实现
目录 一.说明 二.单进程实例实现 2.1 Linux平台实现--使用标准库fcntl 2.2 通用平台实现--使用第三方库portalocker 三.单例模式实现 3.1 单例模式示例代码 3.2 ...
- Win64 驱动内核编程-26.强制结束进程
强制结束进程 依然已经走到驱动这一层了,那么通常结束掉一个进程不是什么难的事情.同时因为win64 位的各种保护,导致大家慢慢的已经不敢HOOK了,当然这指的是产品.作为学习和破解的话当然可以尝试各种 ...
- C#各种结束进程的方法详细介绍
Process类的CloseMainWindow, Kill, Close Process.CloseMainWindow是GUI程序的最友好结束方式,从名字上就可以看出来它是通过结束主窗体,相当于用 ...
- 获取进程列表和结束进程
uses TLHelp32, Classes; type TProcessInfo = record ExeFile: string; ProcessID: DWORD; end; p ...
最新文章
- Windows+Nginx+IIS做图片分布式存储详细步骤
- relu函数_从 ReLU 到 GELU,一文概览神经网络的激活函数
- 上传书籍进度信息到服务器...,使用HttpWebRequest实现大文件上传资料.pdf
- python 控件id_查看控件id的工具
- pythonselenium上传图片视频_如何用selenium、python上传文件(图片)
- 在线YAML转XML工具
- Entity Framework 无法加载指定的元数据资源。
- Magnet for mac(窗口布局辅助工具)
- SpringBoot-Dubbo入门教程
- python程序设计应用教程pdf_python程序设计教程
- 空间索引 - Redis/MongoDB/PostgreSQL/MySQL空间索引使用报告
- 耳机插入电脑插孔后只有一边有声音
- 神经网络浅讲:从神经元到深度学习
- 企业微信好友无上限,私域流量即将迎来春天?
- 【在线教育直播】直播很卡怎么办?
- 实时计算与SparkSteaming的对比
- 【166】VS2022调试通过海康人脸抓拍SDK的C++代码
- 是否能任取前序、中序和后序两种序列建立二叉树?
- Windows下打开命令窗口几种方式
- PostgreSQL日期加减
热门文章
- 简易可逆加密解密算法
- centos关闭防火墙命令(centos重启防火墙命令)
- Xsehll连接Linux进入VIm后不能鼠标右键复制
- JS合并两个数组的方法分享
- Quartus中D触发器入门
- 自由能 亥姆霍兹自由能(Helmholtz free energy)和吉布斯自由能(Gibbs free energy)等概念;IC50/Ki/Kd与结合自由能ΔG关系
- Excel数据分析函数
- Idea连接数据库,并生成pojo
- js的语法和java相同_js的一些有别于java语法
- VC++计算文件和文件夹的大小(附源码)