禁用任务管理器(修改注册表与设置键盘钩子)

来源:互联网 发布:python 图形界面开发 编辑:程序博客网 时间:2024/05/23 14:19

#define HKCU HKEY_CURRENT_USER

HKEY hk;
HHOOK hook;  
LPCTSTR VAL_DisableTaskMgr = _T("DisableTaskMgr");
LPCTSTR KEY_DisableTaskMgr =_T("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System");


//设置键盘钩子 

hook=::SetWindowsHookEx(WH_KEYBOARD_LL,(HOOKPROC)key2,AfxGetApp()->m_hInstance,0);  


LRESULT CALLBACK key2(int ncode,WPARAM w,LPARAM l)
{  
    if (ncode >= 0)
    {  
        
        KBDLLHOOKSTRUCT* m = (KBDLLHOOKSTRUCT*) l;  
        if( m->vkCode == VK_TAB || GetAsyncKeyState(VK_CONTROL) || GetAsyncKeyState(VK_MENU)|| 


/*GetAsyncKeyState(VK_SHIFT)||*/
           m->vkCode == VK_LWIN || m->vkCode == VK_RWIN || m->vkCode == VK_ESCAPE || 
           m->vkCode == VK_F4 || m->vkCode == VK_F1 ||m->vkCode == VK_F12)
        {  
            return 1;  
        }  
    }  
    return ::CallNextHookEx(hook,ncode,w,l);  


//禁用任务管理器
    DWORD val = 1 ;
    RegCreateKeyEx(HKCU, KEY_DisableTaskMgr, 0,NULL,REG_OPTION_BACKUP_RESTORE , 
        KEY_ALL_ACCESS,NULL,&hk,&val);
    RegSetValueEx(hk, VAL_DisableTaskMgr, 0,  
        REG_DWORD, (BYTE*)&val, sizeof(val)); 
    
    RegFlushKey(hk);
    RegCloseKey(hk);


//解禁任务管理器

       if (RegOpenKey(HKCU, KEY_DisableTaskMgr,&hk)!=ERROR_SUCCESS)  
           RegCreateKey(HKCU, KEY_DisableTaskMgr, &hk);  
       DWORD val=0;  
       RegSetValueEx(hk, VAL_DisableTaskMgr, NULL,  
           REG_DWORD, (BYTE*)&val, sizeof(val));  
       RegFlushKey(hk);
       RegCloseKey(hk);

原创粉丝点击