C++检测键盘某键是否按下的方法

检测键盘与鼠标差不多,但是它比较好记

但是比较奇怪,比如你想要检测字母,必须是它的大写

具体的就参照虚拟键盘值表,上百度可以查到

为了能更清楚地表达,我编了个小程序

#include<iostream>
#include<windows.h>

#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) //必要的,我是背下来的 

using namespace std;

void color(int a){//改变输出的颜色,比system("color x")快得多
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
/*
<span style="white-space:pre">	</span>字
	1	深蓝色
	2	深绿色
	3	深青色
	4	深红色
	5	深粉色
	6	黄色
	7	深白色
	8	灰色
	9	浅蓝色
	10	浅绿色
	11	浅青色
	12	浅红色
	13	浅粉色
	14	浅黄色
	15	浅白色 

	背景
	1~15		黑色
	16~31		深蓝色
	32~47		深绿色
	48~63		深青色
	64~79		深红色
	80~95		深粉色
	96~111		深黄色
	112~127 	深白色
	128~143 	灰色
	144~159 	浅蓝色
	160~175 	浅绿色
	176~191 	浅青色
	192~207 	浅红色
	208~223 	浅粉色
	224~239 	浅黄色
	240~255 	浅白色
*/
}

void check(char c){//检测某个按键是否按下,按下就改变输出颜色
	if(!KEY_DOWN(c))color(7);
	else color(112);
	printf(" %c ",c);
	color(7);
}

int main(){
	while(1){
		check('Q');check('W');check('E');check('R');check('T');check('Y');check('U');check('I');check('O');check('P');
		printf("\n\n ");
		check('A');check('S');check('D');check('F');check('G');check('H');check('J');check('K');check('L');
		printf("\n\n ");
		check('Z');check('X');check('C');check('V');check('B');check('N');check('M');

		Sleep(20);//循环时间间隔,防止太占内存
		system("cls");//清屏
	}

	return 0;
}

以上这篇C++检测键盘某键是否按下的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • C/C++获取键盘事件的方法

    在vs中可以使用_kbhit()函数来获取键盘事件,使用时需要加入conio.h头文件,例: #include <conio.h> #include <iostream> using namespace std; int main() { int ch; while (1){ if (_kbhit()){//如果有按键按下,则_kbhit()函数返回真 ch = _getch();//使用_getch()函数获取按下的键值 cout << ch; if (ch == 2

  • 浅谈C++的几种从键盘输入方式

    我们都知道,C++可以从键盘来读取输入,读取输入的方式也有好多种,下面我们来介绍常见的几种方式 和他们的不同之处 1.cin 使用cin输入时,程序将输入视为一系列字节.每个字节都被解释为字符编码.不管数据类型是什么,输入一开始都是字符数据,然后cin对象负责将数据转换成其他类型 例如 string name; std::cin>>name; std::cout<<name; 当你输入Michael Jackon时,通运行程序你会发现name只存储了Michael,这是为什么呢?

  • C++检测键盘某键是否按下的方法

    检测键盘与鼠标差不多,但是它比较好记 但是比较奇怪,比如你想要检测字母,必须是它的大写 具体的就参照虚拟键盘值表,上百度可以查到 为了能更清楚地表达,我编了个小程序 #include<iostream> #include<windows.h> #define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) //必要的,我是背下来的 using namespace std; void col

  • js实现键盘Enter键提交表单的方法

    本文实例讲述了js实现键盘Enter键提交表单的方法.分享给大家供大家参考.具体实现方法如下: //执行键盘按键命令 function keyDown(e){ var keycode = 0; //IE浏览器 if(CheckBrowserIsIE()){ keycode = event.keyCode; }else{ //火狐浏览器 keycode = e.which; } if (keycode == 13 ) //回车键是13 { //document.getElementById("lo

  • C# 键盘Enter键取代Tab键实现代码

    说明:在填写表数据时当输入完一个文本框后,输入下一个文本框时需要用Tab键切换,但是有的人喜欢用Enter键切换下一个,此方法是Enter取代Tab键. 效果: 注释:键盘Enter键数字为:13 键盘Tab键数字为:9 函数代码: 复制代码 代码如下: private void SetEnt()        {            foreach (Control txt in (this.Page.Form.FindControl("ContentPlaceHolderEntity&qu

  • python实时检测键盘输入函数的示例

    在嵌入式.尤其是机器人的python编程中,经常需要实时检测用户的键盘输入来随时控制机器人,这段代码可以帮助我们提取用户输入的字符,并在按下键盘的时候作出反应. import sys import tty import termios def readchar(): fd = sys.stdin.fileno() old_settings = termios.tcgetattr(fd) try: tty.setraw(sys.stdin.fileno()) ch = sys.stdin.read

  • jQuery利用键盘上下键移动表格内容

    本文实例为大家分享了jQuery利用键盘上下键移动表格内容的具体代码,供大家参考,具体内容如下 在我们编辑表格内容时,经常需要将表格内容的位置进行移动,而利用键盘上下键进行移动是十分方便的. 效果如下: 基本原理是:先使用鼠标选中其中的一行,随后使用键盘上下键,通过获取不同的键值区分上移和下移的操作,随后首先交换两行的编号,随后交换两行的内容,保证了两行内容移动而编号不改变. 下面是代码: function clickA(obj){             currentLine=$.trim(

  • jQuery检测鼠标左键和右键点击的方法

    本文实例讲述了jQuery检测鼠标左键和右键点击的方法.分享给大家供大家参考.具体分析如下: 这段代码使用jQuery检测鼠标左键和右键点击,可以判断出用户点击了鼠标左键还是鼠标右键,其中考虑到了变态的IE的情况,放心使用. 复制代码 代码如下: $("#someelement").live('click', function(e) {     if((!$.browser.msie && e.button == 0) || ($.browser.msie &&

  • js实现键盘上下左右键选择文字并显示在文本框的方法

    本文实例讲述了js实现键盘上下左右键选择文字并显示在文本框的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml&quo

  • Android 检测键盘显示或隐藏键盘的实现代码

    Android 检测键盘是否显示及隐藏键盘的方法~~ Android 中对于键盘的隐藏与显示的文章很多,今天公司项目需求不仅需要键盘隐藏和显示还需要对键盘的状态进行检查,这里做一个简单的实现实例,供大家参考: 实现代码: package com.newland.util; import android.app.Activity; import android.view.View; import android.view.inputmethod.InputMethodManager; /** *

  • MySQL无法创建外键的原因及解决方法

    关联2张表时出现了无法创建外键的情况,从这个博客看到,问题出在第六点的Charset和Collate选项在表级和字段级上的一致性上.我的2张表的编码charset和collate不一致,2张表都执行执行SQL语句: alter table 表名 convert to character set utf8; 完美解决问题: ps:下面看下MySQL无法创建外键.查询外键的属性 MyISAM 和InnoDB 讲解 InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各

  • Android实现长按back键退出应用程序的方法

    本文实例讲述了Android实现长按back键退出应用程序的方法.分享给大家供大家参考.具体分析如下: 最近在做一个Android上的应用,碰到一个问题就是如何实现长按back键退出应用程序.在网上查找了很多资料,发现几乎没有这样的实现,大部分在处理时是双击back键来退出应用程序.参考了一下双击back键退出应用程序的代码,网上主流的一种方法是下面这种方法,实现起来比较简单: @Override public boolean onKeyDown(int keyCode, KeyEvent ev

随机推荐