测试Numlock 是否是亮的

环境控制台程序;

#include "stdafx.h"

#include <stdio.h>

#include <conio.h>

#include <windows.h>

bool CrnGetNumLockState();

int _tmain(int argc, _TCHAR* argv[])

{

if(CrnGetNumLockState())

   printf("NUM-Lock is light\n");

else

   printf("Num-Lock is light-off\n");

getch();

return 0;

}

bool CrnGetNumLockState()

{

    BYTE btKeyState[256];

    GetKeyboardState((LPBYTE)&btKeyState);

return btKeyState[VK_NUMLOCK] & 1;

}

判断哪个按键被按下

MFC

BOOL CDemoDlg::PreTranslateMessage(MSG* pMsg)

{

// TODO: 在此添加专用代码和/或调用基类

// 假如截获键盘按下消息,就分析按下的哪个键,然后给相应的按钮发送消息

if(pMsg->message==WM_KEYDOWN)

{

   UINT iKey=(UINT)pMsg->wParam;

   switch(iKey)

   {

   case VK_NUMPAD0:

{

     HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

::SetWindowText(hwnd, "0");

     CString key = "VK_NUMPAD0";

     KeyRun(key);

     ::SetFocus(m_hWnd);

    }

    break;

   case VK_NUMPAD1:

    {

     HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

::SetWindowText(hwnd, "1");

     CString key = "VK_NUMPAD1";

     KeyRun(key);

     ::SetFocus(m_hWnd);

    }

    break;

   case VK_NUMPAD2:

    {

     HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

::SetWindowText(hwnd, "2");

     CString key = "VK_NUMPAD2";

     KeyRun(key);

     ::SetFocus(m_hWnd);

    }

    break;

   case VK_NUMPAD3:

    {

     HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

::SetWindowText(hwnd, "3");

     CString key = "VK_NUMPAD3";

     KeyRun(key);

     ::SetFocus(m_hWnd);

    }

    break;

   case VK_NUMPAD4:

    {

     HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

::SetWindowText(hwnd, "4");

     CString key = "VK_NUMPAD4";

     KeyRun(key);

     ::SetFocus(m_hWnd);

    }

    break;

   case VK_NUMPAD5:

    {

     HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

::SetWindowText(hwnd, "5");

     CString key = "VK_NUMPAD5";

     KeyRun(key);

     ::SetFocus(m_hWnd);

    }

    break;

   case VK_NUMPAD6:

    {

     HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

::SetWindowText(hwnd, "6");

     CString key = "VK_NUMPAD6";

     KeyRun(key);

     ::SetFocus(m_hWnd);

    }

    break;

   case VK_NUMPAD7:

    {

     HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

::SetWindowText(hwnd, "7");

     CString key = "VK_NUMPAD7";

     KeyRun(key);

     ::SetFocus(m_hWnd);

    }

    break;

   case VK_NUMPAD8:

    {

     HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

::SetWindowText(hwnd, "8");

     CString key = "VK_NUMPAD8";

     KeyRun(key);

     ::SetFocus(m_hWnd);

    }

    break;

   case VK_NUMPAD9:

    {

     HWND hwnd = ::GetDlgItem(m_hWnd,IDC_EDIT_IN);

::SetWindowText(hwnd, "9");

     CString key = "VK_NUMPAD9";

     KeyRun(key);

     ::SetFocus(m_hWnd);

    }

    break;

default:

    break;

   }

}

return CDialog::PreTranslateMessage(pMsg);

}

vc 判断哪个按键 被按下 消息 按键 状态的更多相关文章

  1. [置顶] Android事件—单选按键和下拉按键

    在平常的开发中单选按键和下拉按键是非常常用的2个点击事件.首先介绍下单选按键 1:单选按键,单选的主键是radiogroup 这个主键也是很重要的 首先介绍下主键的布局 <?xml versio ...

  2. JavaScript判断鼠标滑轮是向下还是向上滚动

    我们常用的就是鼠标,鼠标中键一般都用于滑动网页,但是网页中很多很炫的效果,使用鼠标滑轮操作更好. 当然对于手机就没有这个设备了,所以就不用考虑手机端的实现方法,手机端有触摸滑动事件. 使用JavaSc ...

  3. 滚动条大于120px时,判断pc端的情况下,导航条固定定位

      //滚动条大于120px时,判断pc端的情况下,导航条固定定位 $(window).scroll(function(){ var viewWidth=$(document).width() var ...

  4. JavaScript onkeydown事件入门实例(键盘某个按键被按下)

    JavaScript onkeydown 事件 用户按下一个键盘按键时会触发 onkeydown 事件.与 onkeypress事件不同的是,onkeydown 事件是响应任意键按下的处理(包括功能键 ...

  5. linux下获取按键响应事件【转】

    本文转载自:https://my.oschina.net/u/157503/blog/91548 1.问题 通过一个死循环将读取键盘对应的设备文件将触发键盘事件在屏幕上打印出来,按esc退出程序 代码 ...

  6. 监控Mysql主从环境下Slave延迟状态的操作记录

    在MySQL主从环境下,通常会根据Seconds_Behind_Master的值来判断slave的延迟状态,这么做在大部分情况下尚可接受,但其实是并不够准确的.对于Slave延迟状态的监控,应该考虑多 ...

  7. rabbitmq 消息的状态转换

    tutorial:http://www.rabbitmq.com/tutorials/tutorial-two-java.html 这里解释接收消息端关于 acknowledge和prefetch的设 ...

  8. Android中判断网络连接是否可用及监控网络状态

    Android中判断网络连接是否可用及监控网络状态 作者: 字体:[增加 减小] 类型:转载 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限,接下来详细介绍Android ...

  9. 消息队列状态:struct msqid_ds

    Linux的消息队列(queue)实质上是一个链表, 它有消息队列标识符(queue ID). msgget创建一个新队列或打开一个存在的队列; msgsnd向队列末端添加一条新消息; msgrcv从 ...

随机推荐

  1. UI—代理简单使用

    代理:又叫委托 通俗的说是自己不能办的事 委托给别人去办.比如UITextField,UIAlertView都使用了代理 写代理的步骤: 1.声明代理里面的协议方法(@protocl) 2.声明协议的 ...

  2. vs 添加坚竖虚线(垂直虚线、肾虚线 by 我的Y韬)

    Indent Guides https://visualstudiogallery.msdn.microsoft.com/e792686d-542b-474a-8c55-630980e72c30 vs ...

  3. for name in loop Shell

    for NAME in joe jane juliedoADDRESS="$NAME@example.com"MESSAGE='Projects are due today!'ec ...

  4. QueryRunner的API

    org.apache.commons.dbutils Class QueryRunner java.lang.Object org.apache.commons.dbutils.AbstractQue ...

  5. C语言每日一题之No.9

    再做决定之前,我还是做好自己该做的.我不希望几年后会悔恨自己为什么在最该努力的时候不愿意吃苦.尊敬的女王陛下,请接题: 一.题目:有已按升序排好顺序的字符串a,编写程序将字符串s中的每个字符按升序的规 ...

  6. Linux下文件的压缩和解压

    tar命令 解包:tar zxvf FileName.tar 打包:tar czvf FileName.tar DirName gz命令 解压1:gunzip FileName.gz 解压2:gzip ...

  7. linux awk命令

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...

  8. 黄聪:Discuz X2.5、3.0、3.1、3.2 如何不用插件实现用户名只允许中文注册

    1.在后台--注册与访问--注册链接文字,把“注册”改为“中文注册”或“注册(请使用中文注册)”等   2.后台UCenter管理中心---注册设置---禁止的用户名:   *q* *w* *e* * ...

  9. JavaScript如何获得昨天明天等日期

    <script type="text/javascript"> function GetDateStr(AddDayCount) { var dd = new Date ...

  10. sqlite数据库执行full outer join

    sqlite数据库执行full outer join时提示:RIGHT and FULL OUTER JOINs are not currently supported. sqlite数据库不支持(+ ...