社区
ATL
帖子详情
如何删除一个进程
liuxing2004
2004-04-30 01:43:04
我写了一个程序,此程序有时不能正常退出,即屏幕上已经没了,但在task manager中还可以看到。因此,我想通过FindWindow查找此进程的主窗口,如果此窗口是隐藏的,则说明此进程没有正常退出。因此我想把此进程删掉,但我只知道此进程的主窗口的句柄,而无法得到此进程的id,请问如何才能得到。用PSAPI可以,但我想问问有没有更简单的方法。
解决立即送分。
...全文
690
6
打赏
收藏
如何删除一个进程
我写了一个程序,此程序有时不能正常退出,即屏幕上已经没了,但在task manager中还可以看到。因此,我想通过FindWindow查找此进程的主窗口,如果此窗口是隐藏的,则说明此进程没有正常退出。因此我想把此进程删掉,但我只知道此进程的主窗口的句柄,而无法得到此进程的id,请问如何才能得到。用PSAPI可以,但我想问问有没有更简单的方法。 解决立即送分。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liuxing2004
2004-04-30
打赏
举报
回复
谢谢:csdnzhu(我什么也不会)
应该这样就可以。
csdnzhu
2004-04-30
打赏
举报
回复
/*
コッ ハ テ・FindProcessHandleAndKillInSnapShot
コッハケヲトワ:ヤレスフオトトレエ貔オマミユメオスヨクカィオトウフミフイ「ヌメームヒ・アヒタ
ー・アセ コナ:1.0
ヘ・ノネユニレ:2004/03/05
キオ サリ ヨオ:ウノケヲキオサリTRUE,キァーワキオサリFALSE
イホ ハ 1:メヤラヨキ逸ョア桄セオトウフミ・ネ・winword.exe"
ニ萢・オテ・ネ郢鉷ャメサクフミミカ犧オタヤレヤヒミミ」ャトヌテエスォヨサノアヒタメサク・ラ「メ箏トハヌユ篋ッハヨサハハモテモレWin2000マオヘウ」ャメェWin98マツスフテ釗ケモミツキセカ
モヲモテハセタ:
FindProcessHandleAndKillInSnapShot("winword.exe");
*/
BOOL FindProcessHandleAndKillInSnapShot(const CString &cs_sExeName)
{
PROCESSENTRY32 pe;
pe.dwSize=sizeof(PROCESSENTRY32);
HANDLE hProcess=NULL;
HANDLE hSnapShot;
hSnapShot=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hSnapShot==NULL)
{
return FALSE;//cannot get the snapshot handle
}
::Process32First(hSnapShot, &pe);
do//find the assign process name
{
CString str;
str=pe.szExeFile;
if(str.CompareNoCase(cs_sExeName)==0)
{
hProcess = ::OpenProcess(PROCESS_TERMINATE, FALSE,pe.th32ProcessID);
break;
}
}while (::Process32Next(hSnapShot, &pe));
if(hProcess==NULL)
{
//return FALSE;
}
if(::WaitForSingleObject(hProcess, 10000)!= WAIT_OBJECT_0)
{
::TerminateProcess(hProcess,0);//kill process
}
::CloseHandle(hProcess);
::CloseHandle(hSnapShot);
Sleep(5*SLEEP_TIME);
return TRUE;
}
csdnzhu
2004-04-30
打赏
举报
回复
/*
コッ ハ テ・FindProcessHandleAndKill
コッハケヲトワ:クンエーソレテ軏鰈メオスエーソレヒトスフ,イ「ヌメームユ篋フノアヒタ
ー・アセ コナ:1.0
ヘ・ノネユニレ:2004/03/05
キオ サリ ヨオ:ウノケヲキオサリTRUE,キァーワキオサリFALSE
イホ ハ 1:メヤラヨキ逸ョア桄セオトエーソレオトテ﨤ニ
ニ萢・オテ・
モヲモテハセタ:
BOOL ret=FindProcessHandleAndKill("1");//イ鰈メエーソレア・簧ェ1オトエーソレ
*/
BOOL FindProcessHandleAndKill(const CString &cs_WndName)
{
HWND hWnd;
DWORD ProcessID;
HANDLE hProcess;
hWnd=::FindWindow(NULL, cs_WndName);
if(hWnd==NULL)//テサモミユメオスエーソレ
{
return FALSE;
}
else
{
if(GetWindowThreadProcessId(hWnd, &ProcessID)==0)//ハァーワ
{
return FALSE;
}
else
{
hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,ProcessID);
if(hProcess==NULL)
{
return FALSE;
}
else
{
if(TerminateProcess(hProcess, 0))
{
return TRUE;
}
else
{
return FALSE;
}
}
}
}
}
liuxing2004
2004-04-30
打赏
举报
回复
此程序是用VB写的,也不是每次都会出现不能正常退出。
madhappy
2004-04-30
打赏
举报
回复
删除进程不是解决的办法阿
一定是你的程序有问题了
检查一下内存泄漏等,NEW的东东是不是都DELETE了
Pipi0714
2004-04-30
打赏
举报
回复
估计你的程序有非法操作了。
Linux下多个
进程
可以同时打开同
一个
文件吗?文件描述符与打开文件的关系?
4.任何
一个
进程
删除
该文件时,另外
一个
进程
不会立即出现读写失败 5.两个
进程
可以分别读取文件的不同部分而不会相互影响 6.
一个
进程
对文件长度和内容的修改另外
一个
进程
可以立即感知 二:文件描述符与打开文件的关系...
linux文件多个
进程
,Linux下多个
进程
同时操作
一个
文件的实现过程
本文将对Linux下多个
进程
“同时”操作同
一个
文件的过程进行简单的介绍。假设有三个
进程
A、B、C对文件a.txt文件行操作。A
进程
要读取文件的第1到100个字符,
进程
B要读取文件中包含aa字符的行,C要往a.txt文件里写入”...
Linux多
进程
读写正在
删除
的文件
Linux中多
进程
环境下,打开同
一个
文件,当
一个
进程
进行读写操作,如果另外
一个
进程
删除
了这个文件,那么读写该文件的
进程
会发生什么呢? linux是通过link的数量来控制文件
删除
,只有当
一个
文件不存在任何link的时候,...
linux下两个
进程
可以同时打开同
一个
文件吗?返回的文件描述符一样吗?
Linux下两个
进程
可以同时打开同
一个
文件吗?返回的文件描述符一样吗?...任何
一个
进程
删除
该文件时,另外
一个
进程
不会立即出现读写失败 5.两个
进程
可以分别读取文件的不同部分而不会相互影响 6.一...
Linux根据
进程
名字彻底
删除
所有相关的子
进程
Linux有些时候kill -9
进程
pid,
进程
名字还会出现,比如spark提交应用时的SparkSubmit。这是因为当前
进程
有其它子
进程
依赖。
ATL
3,248
社区成员
48,529
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章