按CTRL+ALT+DEL和CTRL+SHIFT+ESC都操作任务管理器所以,我想让公共键CTRL失效不知道能不能实现?
=========================又或者还有没有其他的方法实现

解决方案 »

  1.   

    写一个HOOK,在打开一个窗口后检查其TITLE,若是资源管理器,向其窗口发WM_QUIT消息
      

  2.   

    实时查询任务管理器
    FindWindows taskmgr.exe
    获得句柄就Kill它
      

  3.   

    用这个FINDWINDOWS的时候,具体参数怎么设置我刚才用FINDWINDOWSEX这个函数,参数为NUlL,NULL,"Shell_traywnd","Shell_traywnd"竟然不起作用
      

  4.   


    那我下载一个别的类型的任务管理器不就还是可以看到系统运行的EXE吗
      

  5.   

    Windows XP系统中如何屏蔽 Ctrl+Alt+Del、Alt+Tab以及Ctrl+Esc键序列http://www.vckbase.com/document/viewdoc/?id=424
      

  6.   

    简单一点的方法是修改注册表:
    新建一个双字节(REG_DWORD)值项,HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr,修改其值为1
    同时监视用户修改改注册表值,防止被还原。根本一点的方法是自己写gina,因为按ctrl+alt+del是触发WSA通知的。hook ctrl+alt+del or ctrl+shift+esc 这种办法就算了,因为可以在任务栏点右键,选“任务管理器”菜单来启动。
      

  7.   


    我的系统是2000的,在你说的表项下没有找到这个DisableTaskMgr  在XP下也没找到这个是不是还跟系统有关啊
    要是这样,那还要判断当前用户是什么系统
    是不是给指定错了是在MACHINE
      

  8.   


    晕,我第二行的头两个字不是写了新建吗?你的系统里可能只有到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies,你先在Policies下新建项System,然后选中System项,在右边的窗口中新建一个REG_DWORD键值"DisableTaskMgr",将值改为1, Understand ?
      

  9.   

    要让CTRL键失效的话用HOOK程序屏蔽掉这个键
    要屏蔽任务管理器,还是获取进程句柄,然后关掉他
      

  10.   

    还是用最简单的看看但现在,我不知道要怎么获取任务管理器的窗口句柄FindWindows不知道具体传递什么参数其他的一般窗口我知道但这个任务管理器的应该传递什么就拿不准了我试 了下1.FindWindow(NULL,"Windows 任务管理器");没成功2.FindWindow("Shell_traywnd",NULL);也没成功
    =====
    我现在只想获取这个任务管理器窗口的句柄
      

  11.   

    你屏蔽任务管理器,不怕别人用其他软件看进程?我建议你把快照函数hook了,一般的进程软件就看不到了。
      

  12.   

    现在只想到达一个小小的预期的目标——————控制任务管理器窗口
    但现在不知道怎么获取这个窗口句柄?
    刚才用了FINDWINDOWS但不知道传递什么参数失败了……
      

  13.   

    ……就没人知道用FindWindows怎么查找任务管理器这个窗口吗
      

  14.   

    #include <Windows.h> 
    #pragma data_seg(".SHARED") 
    HHOOK hcbthook=NULL; 
    #pragma data_seg() 
    #pragma comment(linker, "/section:.SHARED,rws") 
    LRESULT CALLBACK CBTProc(  int nCode, 
    WPARAM wParam, 
    LPARAM lParam 


    HWND hwnd; 
    CHAR szBuf[128]; 
        
    if(nCode <0) 
          return CallNextHookEx(hcbthook,nCode,wParam,lParam); 
        switch (nCode) 
        { 
                    case HCBT_CREATEWND: 
        hwnd=(HWND)wParam; 
    GetWindowText(hwnd,szBuf,128); 
                if (stricmp(szBuf,"Windows 任务管理器") == 0) 
    ::PostMessage(hwnd,WM_QUIT,0,0);                         break;                 default:             break; 
        } 
    return CallNextHookEx(hcbthook, nCode, wParam, 
            lParam); } __declspec(dllexport) void InstallHook() { 
    hcbthook = SetWindowsHookEx(WH_CBT ,CBTProc,GetModuleHandle ("Hook4"),0); } __declspec(dllexport) void UninstallHook() 

      UnhookWindowsHookEx(hcbthook); } 以上是全局消息DLL,安装WH_CBT钩子,不是说它能监视窗口的建立吗? 当HCBT_CREATEWND时,它判断窗口的标题看是不是等于WINDOWS 任务管理器,当等于时就发送WM_QUIT消息。可是测试不成功。是不是消息处理错了啊。我这么写的怎么不行