MFC屏蔽 WindowS按键

LRESULT CALLBACK LowLevelKeyboardPorc(int nCode,WPARAM wParam,LPARAM lParam)//屏蔽按键的真正实现方法
{
BOOL fEatKeystrole = FALSE;
if (nCode == HC_ACTION)
{
switch (wParam)
{
case WM_KEYDOWN:
case WM_SYSKEYDOWN:
case WM_KEYUP:
case WM_SYSKEYUP:
{
PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT) lParam;

if (p->vkCode == VK_LWIN || p->vkCode == VK_RWIN)//
{
fEatKeystrole = TRUE;
}

// //Tab + Alt
/*((p->vkCode == VK_TAB) && ((p->flags & LLKHF_ALTDOWN) != 0))
//Esc + Alt
|| ((p->vkCode == VK_ESCAPE) && ((p->flags & LLKHF_ALTDOWN) != 0))
//Esc + Ctrl
|| ((p->vkCode == VK_ESCAPE) && ((GetKeyState(VK_CONTROL) & 0x8000) != 0))
//Ctrl + Space
|| (((GetKeyState(VK_CONTROL) & 0x8000) != 0) && (p->vkCode == VK_SPACE));
*/

}
break;
}
}
return(fEatKeystrole?1:CallNextHookEx(NULL,nCode,wParam,lParam));
}

BOOL CXXXDlg::installhook(void)
{
HINSTANCE hins=AfxGetInstanceHandle();
Hook = SetWindowsHookEx(WH_KEYBOARD_LL,(HOOKPROC)LowLevelKeyboardPorc,hins,0);
return (BOOL)Hook;
}

BOOL CXXXDlg::OnInitDialog()

{

//前面代码 系统默认,

  SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);//全屏后一直在前端显示
  HWND hWnd = ::FindWindow(_T("Shell_TrayWnd"),NULL);//取消任务栏,开始菜单
  HWND hButton =::FindWindow(NULL, _T("Start"));//取消开始菜单 ,XP下不成功
  if (hWnd&& hButton)
  {
    // static BOOL bShow = FALSE;
    ::ShowWindow(hWnd, SW_HIDE );
    ::ShowWindow(hButton,SW_HIDE);
  }

  installhook();//加载勾子

  return TRUE;

}

//卸载

UnhookWindowsHookEx(g_hhkLowLevel,Kybd);//这个参数不对

http://blog.csdn.net/eplanet/article/details/1789941

时间: 2024-10-06 14:01:42

MFC屏蔽 WindowS按键的相关文章

钩子编程(HOOK) 屏蔽所有按键鼠标及系统功能键

作者 : 卿笃军 上篇文章已经详细的讲解了全局钩子的安装,下面我们增强一下钩子的功能,实现屏蔽所有按键鼠标与系统功能键. 要实现这个功能,我们需要安装两个全局钩子,"鼠标钩子" 与 "低级键盘钩子". 鼠标钩子:实现屏蔽所有鼠标点击操作. 低级键盘钩子:实现屏蔽所有键盘操作,包括屏蔽功能键(Alt+F4,Win,Alt+Tab, Alt+Esc,Ctrl+Esc....)注意:不包括Ctrl+Alt+Del功能键. 下面开始安装全局钩子. 第一步:打开VC6.0新建

钩子编程(HOOK) 屏蔽全部按键、鼠标及系统功能键 (4)

摘要:上篇文章<钩子编程(HOOK) 安装系统全局钩子>已经具体的解说了全局钩子的安装.本文将增强一下钩子的功能.实现屏蔽全部按键鼠标与系统功能键.要实现这个功能.须要安装两个全局钩子,"鼠标钩子" 与 "低级键盘钩子".鼠标钩子--实现屏蔽全部鼠标点击操作.低级键盘钩子--实现屏蔽全部键盘操作,包括屏蔽功能键(ALT+F4.WIN.ALT+TAB.ALT+ESC,CTRL+ESC....).注意:不包括CTRL+ALT+DEL功能键. 本文不会具体介绍

API、Win32 SDK、Win32项目、MFC、Windows窗体应用程序的区别

[原]API.Win32 SDK.Win32项目.MFC.Windows窗体应用程序的区别 首先来看一下每一个术语的定义: API:Application Programming Interface.Windows操作系统提供给应用程序编程的接口, 简称 为API函数. Win32 SDK:SDK(Software Development Kit)中文是软件开发包.则Win32 SDK是Windows 32位平台下的软件开发包,包括了API函数.帮助文档.微软 提供的一些辅助开发工具. Win3

VC MFC 屏蔽ESC和ENTER键关闭对话框

窗体头文件中加入: 1 protected: 2 virtual BOOL PreTranslateMessage(MSG* pMsg); // PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的 3 public: 4 virtual void OnOK(); 在CPP中加入: 1 BOOL CColorDlgDlg::PreTranslateMessage(MSG* pMsg) 2 { 3 //屏蔽ESC关闭窗体/ 4 if(pMsg->mes

(转)MFC:Windows如何区分鼠标双击和两次单击

在Windows平台上,鼠标左键的按下.松开.快速的两次点击会产生WM_LBUTTONDOWN.WM_LBUTTONUP和WM_LBUTTONDBLCLK消息,但是Windows根据什么来区分连续的两次鼠标按键操作,是两次独立的单击,还是一次双击呢?最近在解决一个问题时,通过使用Spy++和查阅MSDN,弄清楚了这个问题.简单总结如下: Windows根据两个条件来做这个区分:(1)双击的时间间隔    这是很容易想到的.更准确的说法是这样的,两次单击会产生四个鼠标点击消息,如果第三个消息(第二

模仿MFC封装Windows API

.... 最后添加了两个按钮,分别处理每个按钮的单击事件时,走了弯路,本来想的是在QButton中重写OnLButtonDown方法,但是,无法区分是那个按钮.参考这篇文章: http://zhidao.baidu.com/link?url=hsXHcC9q_tfdf4Ztz_juQR4fxY63UU7Ujsj1Tz1rDPKi2xk8JlnzqX4rfCPNyh-SRK-zeIFgECm9H4PuMn4GoK 在按钮的父窗体的WindowProc中处理WM_COMMAND消息,消息的LOWOR

js 屏蔽 键盘 按键

document.onkeydown=function(){              //alert( event.keyCode )  //可查看各个按键的keyCode是多少              if (event.keyCode == 27) //esc            {                 event.keyCode = 0; return false; } }

MFC屏蔽esc键盘消息

添加如下函数即可: BOOL CNVRServerDlg::PreTranslateMessage(MSG* pMsg) { //屏蔽掉键盘ESC键 if(pMsg-> message==WM_KEYDOWN   &&   pMsg-> wParam==VK_ESCAPE) return   TRUE; if(pMsg-> message==WM_KEYDOWN   &&   pMsg-> wParam==VK_RETURN) return   TR

windows屏蔽windows错误报告提示框

1.Win+R,打开运行窗口,输入regedit,打开注册表. 2.运行注册表编辑器,依次定位到 HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting,在右侧窗口中找到并双击打开DontshowUI,然后在弹出的窗口中将默认值“0”修改为“1” 3.上述步骤设置完成之后需要保存下设置并退出注册表就完成了,下次Win7系统再遇到错误时也不会弹出Windows错误报告了. 该配置可应用于Apache假死 原文地址:h