请问如何防止别人从任务管理器中删除自己的窗口?

shenyi0106 2007-07-12 10:35:39
通常在Windows中,可以通过杀掉一个进程来关闭程序,如果是窗口程序,还可以删除窗口来关闭,请问如果防止杀窗口,我HOOK了DestroyWindow,但是不起作用,请问各位高手如何解决?
...全文
234 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
oldn123 2007-07-13
  • 打赏
  • 举报
回复
Hook api TerminateProcess
看他的参数如果与自己的窗口有关就直接return它
DriverEntry 2007-07-13
  • 打赏
  • 举报
回复
楼上说的不错。或者再写一个WATCHDOG进程,当发现自己的主进程不见了后,就再创建一个同样的进程
HuiChen 2007-07-13
  • 打赏
  • 举报
回复
隐藏自己的进程。
参见 VC知识库 NT环境下进程隐藏的实现 http://www.vckbase.com/document/viewdoc/?id=1496
shenyi0106 2007-07-13
  • 打赏
  • 举报
回复
谢谢啦,不过即使屏蔽了CTRL+ALT+DEL或者让Windows的任务管理器打不开是不起作用的,还有其他的任务管理器怎么搞呢?不过还是要谢谢你?
guogangj 2007-07-13
  • 打赏
  • 举报
回复
这种操作只能通过hook了,hook甚至能隐藏一些注册表中的项目。具体自己查查看,估计研究的人不多。
shenyi0106 2007-07-13
  • 打赏
  • 举报
回复
谢谢各位,但是我说的是窗口,不是进程。
shenyi0106 2007-07-12
  • 打赏
  • 举报
回复
顶啊,不能沉啊!
miaoshengwu 2007-07-12
  • 打赏
  • 举报
回复
把CTRL+ALT+DEL和任务管理器阻隔掉呗。
www.vckbase.com里也有。

下面是阻止与解除CTRL+ALT+DEL的代码,动态链接库我这有,
需要的话发个消息 miaosw_57521@163.com

void CADlg::OnButton2()
{
typedef BOOL (__stdcall * _EnabledKey)(const char* sa);
HINSTANCE hDLLInst = ::LoadLibrary("RunDLL.dll");
if(hDLLInst)
{
_EnabledKey EnabledKey=(_EnabledKey)::GetProcAddress(hDLLInst, "EnabledKey");
if(EnabledKey)
{
char szPath[MAX_PATH];
::GetCurrentDirectory(MAX_PATH,szPath);
strcat(szPath,"\\SASHOOK.dll");

if (EnabledKey(szPath));
MessageBox("成功屏蔽");
}
::FreeLibrary(hDLLInst);
}
}

void CADlg::OnButton3()
{
typedef BOOL (__stdcall * _EnabledKey)(const char* sa);
HINSTANCE hDLLInst = ::LoadLibrary("RunDLL.dll");
if(hDLLInst)
{
_EnabledKey DisabledKey=(_EnabledKey)::GetProcAddress(hDLLInst, "DisabledKey");
if(DisabledKey)
{
char szPath[MAX_PATH];
::GetCurrentDirectory(MAX_PATH,szPath);
strcat(szPath,"\\SASHOOK.dll");

if (DisabledKey(szPath));
MessageBox("成功解除");
}
::FreeLibrary(hDLLInst);
}
}
shenyi0106 2007-07-12
  • 打赏
  • 举报
回复
UP

15,979

社区成员

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

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