屏蔽Ctrl+Alt+Delete组合键的方法
来源:互联网 发布:知乎 净化空气植物 编辑:程序博客网 时间:2024/05/01 23:51
如果想要屏蔽组合键必须使用全局钩子
创建一个全局钩子,创建钩子SetWindowsHookEx(WH_KEYBOARD_LL,(HOOKPROC)keyboardProc,pinstance,0);//挂上钩子
如果想要使用WH_KEYBOARD_LL这个参数,必须在windowNT系统下,如果想要在windowXP中使用,就要在工程的stdafx.h文件里加入两个宏
#define _WIN32_WINNT 0x0500
#define WIN_VER 0x0500
有这个extern "C" LRESULT CALLBACK keyboardProc(int code, WPARAM wparam,LPARAM lparam)//钩子处理函
{
return 1;
}
可以屏蔽除Ctrl+Alt+Delete组合键之外的所有键盘消息。
屏蔽Ctrl+Alt+Delete组合键的方法
由于每次使用这个组合键就会调出资源管理器,如果在设置钩子时就打开资源管理器并最小化,就会产生相当于屏蔽Ctrl+Alt+Delete组合键的效果,
在钩子取消的时候再把资源管理器关闭掉就可以了
启动资源管理器
//====打开指定的exe文件
CString exeStr= "C:\\WINDOWS\\system32\\taskmgr.exe"; //设置要执行的应用程序路径
SHELLEXECUTEINFO Info;
memset (&Info, 0, sizeof(Info)) ;
Info.cbSize=sizeof (Info) ;
Info.lpVerb="open" ;
Info.lpFile=exeStr;
Info.lpParameters=NULL;
Info.fMask=SEE_MASK_NOCLOSEPROCESS ;
Info.nShow=SW_SHOWDEFAULT ;
if (! ShellExecuteEx (&Info))
{
MessageBox("执行程序操作失败!","信息提示",MB_OK);
}
把资源管理器最小化
HWND t_hwnd = ::FindWindow(NULL, "Windows 任务管理器");
::ShowWindow(t_hwnd,SW_HIDE);
关闭资源管理器
//====遍历线程 -- 需要包含头文件#include <tlhelp32.h>
HANDLE handle=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32* info=new PROCESSENTRY32;
info->dwSize=sizeof(PROCESSENTRY32);
int iProcessID; //===线程ID
if(Process32First(handle,info))
{
if(GetLastError()==ERROR_NO_MORE_FILES )
{
AfxMessageBox("No More Process");
}
else
{
CString ProcessID,strProcessName;
ProcessID.Format("%d",info->th32ProcessID);
strProcessName.Format("%s",info->szExeFile);
while(Process32Next(handle,info)!=FALSE)
{
ProcessID.Format("%5d",info->th32ProcessID);
strProcessName.Format("%s",info->szExeFile);
if (!strProcessName.Compare("taskmgr.exe"))
{
//====关闭线程
iProcessID = atoi(ProcessID);
HANDLE h=OpenProcess(PROCESS_ALL_ACCESS,TRUE,info->th32ProcessID);
if(h!=NULL)
{
if(h!=NULL)
{
//===关闭线程
TerminateProcess(h,0);
}
}
break;
}
}
}
}
CloseHandle(handle);
如果想要锁定计算机屏幕,并电子黑屏,可以在钩子弹出一个对话框进行全屏,去掉标题栏和最小化,最大化,关闭按钮;刷成黑屏;
在钩子对话框销毁时取消钩子!
创建一个全局钩子,创建钩子SetWindowsHookEx(WH_KEYBOARD_LL,(HOOKPROC)keyboardProc,pinstance,0);//挂上钩子
如果想要使用WH_KEYBOARD_LL这个参数,必须在windowNT系统下,如果想要在windowXP中使用,就要在工程的stdafx.h文件里加入两个宏
#define _WIN32_WINNT 0x0500
#define WIN_VER 0x0500
有这个extern "C" LRESULT CALLBACK keyboardProc(int code, WPARAM wparam,LPARAM lparam)//钩子处理函
{
return 1;
}
可以屏蔽除Ctrl+Alt+Delete组合键之外的所有键盘消息。
屏蔽Ctrl+Alt+Delete组合键的方法
由于每次使用这个组合键就会调出资源管理器,如果在设置钩子时就打开资源管理器并最小化,就会产生相当于屏蔽Ctrl+Alt+Delete组合键的效果,
在钩子取消的时候再把资源管理器关闭掉就可以了
启动资源管理器
//====打开指定的exe文件
CString exeStr= "C:\\WINDOWS\\system32\\taskmgr.exe"; //设置要执行的应用程序路径
SHELLEXECUTEINFO Info;
memset (&Info, 0, sizeof(Info)) ;
Info.cbSize=sizeof (Info) ;
Info.lpVerb="open" ;
Info.lpFile=exeStr;
Info.lpParameters=NULL;
Info.fMask=SEE_MASK_NOCLOSEPROCESS ;
Info.nShow=SW_SHOWDEFAULT ;
if (! ShellExecuteEx (&Info))
{
MessageBox("执行程序操作失败!","信息提示",MB_OK);
}
把资源管理器最小化
HWND t_hwnd = ::FindWindow(NULL, "Windows 任务管理器");
::ShowWindow(t_hwnd,SW_HIDE);
关闭资源管理器
//====遍历线程 -- 需要包含头文件#include <tlhelp32.h>
HANDLE handle=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32* info=new PROCESSENTRY32;
info->dwSize=sizeof(PROCESSENTRY32);
int iProcessID; //===线程ID
if(Process32First(handle,info))
{
if(GetLastError()==ERROR_NO_MORE_FILES )
{
AfxMessageBox("No More Process");
}
else
{
CString ProcessID,strProcessName;
ProcessID.Format("%d",info->th32ProcessID);
strProcessName.Format("%s",info->szExeFile);
while(Process32Next(handle,info)!=FALSE)
{
ProcessID.Format("%5d",info->th32ProcessID);
strProcessName.Format("%s",info->szExeFile);
if (!strProcessName.Compare("taskmgr.exe"))
{
//====关闭线程
iProcessID = atoi(ProcessID);
HANDLE h=OpenProcess(PROCESS_ALL_ACCESS,TRUE,info->th32ProcessID);
if(h!=NULL)
{
if(h!=NULL)
{
//===关闭线程
TerminateProcess(h,0);
}
}
break;
}
}
}
}
CloseHandle(handle);
如果想要锁定计算机屏幕,并电子黑屏,可以在钩子弹出一个对话框进行全屏,去掉标题栏和最小化,最大化,关闭按钮;刷成黑屏;
在钩子对话框销毁时取消钩子!
- 屏蔽Ctrl+Alt+Delete组合键的方法
- Alt+Ctrl+Del组合键的屏蔽
- 屏蔽CTRL+ALT+DELETE
- MFC:XP下屏蔽Ctrl+Alt+Del等组合键的方法
- Windows Server 2008 R2开关机取消登录时要按Ctrl+Alt+Delete组合键登录的方法
- Windows Server 2008开关机取消登录时要按Ctrl+Alt+Delete组合键登录的方法
- C#屏蔽系统热键Ctrl+Alt+Delete的代码尝试。
- XP、Wn7模拟发送ctrl+alt+delete组合键
- XP、Wn7模拟发送ctrl+alt+delete组合键
- XP、Win7模拟发送ctrl+alt+delete组合键
- 虚拟机怎么发送ctrl+alt+delete组合键
- Windows Server 2008取消登录前的Ctrl+Alt+Delete组合键操作
- win7屏蔽ctrl+alt+up/down快捷键的方法
- win8/win7屏蔽ctrl+alt+up/down快捷键的方法
- Ctrl+Alt+Delete的由来
- 进程防杀与屏蔽WIN 、alt+tab、ctrl+esc等键的方法
- 捕获Ctrl、Ctrl+Alt和Ctrl+Alt+Shift组合键
- 如何屏蔽键盘的Ctrl+Alt+Del键
- 创建全局钩子
- 程序中用代码关闭计算机
- MFC 重启计算机
- MFC 把自己写的程序设置成开机启动
- mfc 查找线程获取程序的线程ID,判断线程是否启动
- 屏蔽Ctrl+Alt+Delete组合键的方法
- Windows下LAMP环境搭建 .
- 怎样把对话框刷成指定的颜色
- mysql 查询数据库时时间戳的转换
- 苦逼程序员的辛酸反省与总结
- mysql “The InnoDB memory heap is disabled ”报错解决办法
- 修改firefox火狐临时文件夹目录
- 织梦栏目二级域名绑定
- ZOJ 1227 Free Candies(记忆化搜索)