怎样屏蔽热键?

wuliangge2001 2003-04-28 05:11:15
因为程序的特殊性,我想实现在进入程序时,使低级用户不能用ctrl+alt+del和alt+tab和windows键,怎样实现?有这样的类吗?
...全文
61 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
MPU 2003-05-17
  • 打赏
  • 举报
回复
把Ctrl+Esc,Alt+Tab,Alt+F4,Alt+Esc全屏蔽。



#define _WIN32_WINNT 0x0500
#include <Windows.h>

LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) {

BOOL fEatKeystroke = FALSE;

if (nCode == HC_ACTION) {
switch (wParam) {
case WM_KEYDOWN:
case WM_SYSKEYDOWN:
case WM_KEYUP:
case WM_SYSKEYUP:
PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT) lParam;
fEatKeystroke =
((p->vkCode == VK_F4) && ((p->flags & LLKHF_ALTDOWN) != 0)) ||
((p->vkCode == VK_TAB) && ((p->flags & LLKHF_ALTDOWN) != 0)) ||
((p->vkCode == VK_ESCAPE) && ((p->flags & LLKHF_ALTDOWN) != 0)) ||
((p->vkCode == VK_ESCAPE) && ((GetKeyState(VK_CONTROL) & 0x8000) != 0));
break;
}
}
return(fEatKeystroke ? 1 : CallNextHookEx(NULL, nCode, wParam, lParam));
}

/////////////////////////////////////////////////////////////////////////


int WINAPI WinMain(HINSTANCE hinstExe, HINSTANCE, PTSTR pszCmdLine, int) {

// Install the low-level keyboard & mouse hooks
HHOOK hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL,
LowLevelKeyboardProc, hinstExe, 0);

// Keep this app running until we’re told to stop
MessageBox(NULL,
TEXT("Alt+Esc, Ctrl+Esc, and Alt+Tab are now disabled.\n")
TEXT("Click \"Ok\" to terminate this application and re-enable
these keys."),
TEXT("Disable Low-Level Keys"), MB_OK);
UnhookWindowsHookEx(hhkLowLevelKybd);

return(0);
}


zhaopeiylx 2003-05-16
  • 打赏
  • 举报
回复
可以用SystemParametersInfo试试看^_^
jinkaoyan 2003-05-14
  • 打赏
  • 举报
回复
用hook吧
wuliangge2001 2003-04-29
  • 打赏
  • 举报
回复
有没有人会?帮帮忙吧
wuliangge2001 2003-04-29
  • 打赏
  • 举报
回复
key input API ?能不能说的详细一些?
puma5 2003-04-29
  • 打赏
  • 举报
回复
没有相关的MFC CLASS
puma5 2003-04-29
  • 打赏
  • 举报
回复
利用key input API 重新设置快捷键即可

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧