进程被杀,会收到什么消息!

白驼山宋兵甲 2003-07-29 09:39:57
或者说正在运行进程从被杀掉,一直到彻底退出,中间执行了什么操作??

...全文
202 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sssa2000 2003-08-02
  • 打赏
  • 举报
回复
还有一个办法,就是注册为系统服务,在任务管理器是不能杀掉的
sssa2000 2003-08-02
  • 打赏
  • 举报
回复
进程被杀 不会有消息,最好注入进程,先做一个dll在把进程注入,然后把dll拷贝到内存
这样就很不错了
yshy 2003-08-01
  • 打赏
  • 举报
回复
进程被杀掉是不会收到任何消息的
白驼山宋兵甲 2003-08-01
  • 打赏
  • 举报
回复
句柄应用够广泛的,也不失一个解决之道
c0der 2003-08-01
  • 打赏
  • 举报
回复
同意老坎,TerminateProces是不发送消息给目标进程的。
双杯献酒 2003-07-29
  • 打赏
  • 举报
回复
好象是:
WM_CLOSE
如果进程不在规定的时间内结束,
就会在没有任何消息的情况下,
被无声无息地结束.
masterz 2003-07-29
  • 打赏
  • 举报
回复
在其他进程中可以WaitForSingleObject(hProcess,...),hProcess被杀掉时会被触发
NowCan 2003-07-29
  • 打赏
  • 举报
回复
要是直接就TerminateProcess的话,那就没有消息了。
xiaohedou 2003-07-29
  • 打赏
  • 举报
回复
参考如何杀死一个进程:

DWORD id=GetProcessIdFromName("C:\\WINDOWS\\SYSTEM\\PWSTRAY.EXE");
if(id!=NULL)
{

HANDLE myhandle=OpenProcess(PROCESS_ALL_ACCESS,TRUE,id);
DWORD exitcode=0;
TerminateProcess(myhandle,exitcode);

}

DWORD CMainFrame::GetProcessIdFromName(LPCTSTR name)
{

PROCESSENTRY32 pe;
DWORD id = 0;
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
pe.dwSize = sizeof(PROCESSENTRY32);
if( !Process32First(hSnapshot,&pe) )
return 0;
CString name1,name2;
do
{
pe.dwSize = sizeof(PROCESSENTRY32);
if( Process32Next(hSnapshot,&pe)==FALSE )
break;
name1=pe.szExeFile;
name2=name;
name1.MakeUpper();
name2.MakeUpper();
if(strcmp(name1.GetBuffer(0),name2.GetBuffer(0)) == 0)
{
id = pe.th32ProcessID;
break;
}


} while(1);
CloseHandle(hSnapshot);
return id;
}
yjh1982 2003-07-29
  • 打赏
  • 举报
回复
什么也不会有;ctrl+alt+del的杀法是先给进程的主窗口发wm_close,但这不是必须的
白驼山宋兵甲 2003-07-29
  • 打赏
  • 举报
回复
好象是没有收到这个消息,

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧