请教怎么防止别人从任务管理器中删除自己的窗口

请问如何防止别人从任务管理器中删除自己的窗口?
通常在Windows中,可以通过杀掉一个进程来关闭程序,如果是窗口程序,还可以删除窗口来关闭,请问如果防止杀窗口,我HOOK了DestroyWindow,但是不起作用,请问各位高手如何解决?

------解决方案--------------------
把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);
}
}
------解决方案--------------------
隐藏自己的进程。
参见 VC知识库 NT环境下进程隐藏的实现 http://www.vckbase.com/document/viewdoc/?id=1496