请问在程序中近程本身如何得知自己被其他进程关闭,比如说被任务管理起关闭?希望能给出详细地解释,谢谢
解决方案 »
- vs2005中如何用vc6写的dll??谢谢!!
- 求一读硬盘扇区字节的小程序
- 关于CListCtrl的显示顺序?
- 关于win2000,xp..任务栏的添加项的自动处理?
- 如何结帖?如何给分?
- 开放源代码的VC扩展程序。函数体批生成、数据接口自动生成,注释可隐可现,注释自动生成文档!
- 为什么我的sample.dll不能正常被调用
- 高人,我怎样才能取掉CSlider控件选中时的矩形框,并设置其上的滑动块的颜色
- 如何取得DBGRIDS的一行数值,并取出!!!
- 菜鸟的问题:为什么我的edit不能显示出来呢?
- 紧急求救,vc安装问题
- 一个有关CSocket类的Create成员函数总调用失败的特别奇怪问题
自己无法得知。
简单的说,死人不能说话。
得用WM_CLOSE消息在关闭窗口前进行处理,
原理是
在收到WM_CLOSE的时候取得当前Active的Window Handle,如果这个Handle和你的应用程序的窗口过程中的不相等则说明其它进程试图关闭你的程序,现在你就可以做相应的处理了,例子代码如下:
case WM_CLOSE:
if (hWnd == GetActiveWindow())
{
MessageBox (hWnd, "可以关闭", "结果", MB_OK) ;
}
else
{
MessageBox (hWnd, "不能关闭", "结果", MB_OK) ;
}
break ;
结分吧,呵呵
而且,TerminateProcess 是不发送消息的。我记得msdn里有这么一句 a thread can not protect itself against TerminateThread , TherminateProcess 我没查过,应该也有类似的话。想要获知关闭的话,我想,用其它进程监视比较好。