时间:2011-08-24 09:44:46 作者:不后悔 来源:系统之家 1. 扫描二维码随时看资讯 2. 请使用手机浏览器访问: https://m.xitongzhijia.net/xtjc/20110823/1072.html 手机查看 评论 反馈
TaskKeyMgr
////////////////////////////////////////
// TaskKeyMgr.h
//
#pragma once
#include "TaskKeyHook.h"
/////////////////////////////////////////////////////////////////////
// 使用这个类禁用任务键,任务管理器或任务栏。
// 用相应的标志调用Disable,如:CTaskMgrKeys::Disable(CTaskMgrKeys::ALL);
//
class CTaskKeyMgr {
public:
enum {
TASKMGR = 0x01, // 禁用任务管理器(Ctrl+Alt+Del)
TASKKEYS = 0x02, //禁用任务转换键(Alt-TAB, etc)
TASKBAR = 0x04, //禁用任务栏
ALL=0xFFFF //禁用所有东西L
};
static void Disable(DWORD dwItem,BOOL bDisable,BOOL bBeep=FALSE);
static BOOL IsTaskMgrDisabled();
static BOOL IsTaskBarDisabled();
static BOOL AreTaskKeysDisabled() {
return ::AreTaskKeysDisabled(); // 调用 DLL
}
};
CPP实现
////////////////////////////////////////////////////////////////
// TaskKeyMgr.cpp
//
#include "StdAfx.h"
#include "TaskKeyMgr.h"
#define HKCU HKEY_CURRENT_USER
// 用于禁用任务管理器策略的注册表键值对
LPCTSTR KEY_DisableTaskMgr =
"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System";
LPCTSTR VAL_DisableTaskMgr = "DisableTaskMgr";
///////////////////////////////////////////
// 禁用相关的任务键
//
// dwFlags = 表示禁用什么
// bDisable = 禁用为 (TRUE) ,否则为启用 (FALSE)
// bBeep = 按下非法键是否蜂鸣(指针对任务键)
//
void CTaskKeyMgr::Disable(DWORD dwFlags, BOOL bDisable, BOOL bBeep)
{
// 任务管理器 (Ctrl+Alt+Del)
if (dwFlags & TASKMGR) {
HKEY hk;
if (RegOpenKey(HKCU, KEY_DisableTaskMgr,&hk)!=ERROR_SUCCESS)
RegCreateKey(HKCU, KEY_DisableTaskMgr, &hk);
if (bDisable) { // 禁用任务管理器(disable TM): set policy = 1
DWORD val=1;
RegSetValueEx(hk, VAL_DisableTaskMgr, NULL,
REG_DWORD, (BYTE*)&val, sizeof(val));
} else { // 启用任务管理器(enable TM)
RegDeleteValue(hk,VAL_DisableTaskMgr);
}
}
// 任务键 (Alt-TAB etc)
if (dwFlags & TASKKEYS)
::DisableTaskKeys(bDisable,bBeep); // 安装键盘钩
发表评论
共0条
评论就这些咯,让大家也知道你的独特见解
立即评论以上留言仅代表用户个人观点,不代表系统之家立场