首页 > 其他分享 >键盘控制2

键盘控制2

时间:2024-04-20 16:00:12浏览次数:17  
标签:控制 handle coord 键盘 cout0 SetConsoleCursorPosition HANDLE include

#include<iostream>
#include<windows.h>
#include<conio.h>//控制台输入输出头文件
using namespace std;
int main(){
    HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);//获取标准输出的句柄
    COORD coord={0,2};//保存光标位置
    SetConsoleCursorPosition(handle,coord);
    cout<<"HH";
    HANDLE handle2=GetStdHandle(STD_OUTPUT_HANDLE);
    COORD coord2={1,2};
    SetConsoleCursorPosition(handle2,coord2);
    while(1){
        if(kbhit()){
            int key=getch();
                SetConsoleCursorPosition(handle,coord);
                cout<<"  ";
                SetConsoleCursorPosition(handle2,coord2);
                cout<<" ";
                switch(key){
                    case 72: coord.Y--;coord2.Y--;break;
                    case 75: coord.X--;coord2.X--;break;
                    case 77: coord.X++;coord2.X++;break;
                    case 80: coord.Y++;coord2.Y++;break;
                    case 119: 	while(coord2.Y>0){
								  SetConsoleCursorPosition(handle,coord);
                			 	  cout<<"HH";
								  coord2.Y--;
                    			  SetConsoleCursorPosition(handle2,coord2);
                				  cout<<"H";
                    			  Sleep(30);
                    			  SetConsoleCursorPosition(handle2,coord2);
								  cout<<" ";
							 }
							 coord2.Y=coord.Y;
							 break;
					case 115:	while(coord2.Y<30){
								  SetConsoleCursorPosition(handle,coord);
                			 	  cout<<"HH";
								  coord2.Y++;
                    			  SetConsoleCursorPosition(handle2,coord2);
                				  cout<<"H";
                    			  Sleep(30);
                    			  SetConsoleCursorPosition(handle2,coord2);
								  cout<<" ";
							 }
							 coord2.Y=coord.Y;
							 break;
					case 97: 	while(coord2.X>0){
								  SetConsoleCursorPosition(handle,coord);
                			 	  cout<<"HH";
								  coord2.X--;
                    			  SetConsoleCursorPosition(handle2,coord2);
                				  cout<<"H";
                    			  Sleep(30);
                    			  SetConsoleCursorPosition(handle2,coord2);
								  cout<<" ";
							 }
							 coord2.X=coord.X;	 
							 break;
					case 100:	while(coord2.X<30){
								  SetConsoleCursorPosition(handle,coord);
                			 	  cout<<"HH";
								  coord2.X++;
                    			  SetConsoleCursorPosition(handle2,coord2);
                				  cout<<"H";
                    			  Sleep(30);
                    			  SetConsoleCursorPosition(handle2,coord2);
								  cout<<" ";
							 }
							 coord2.X=coord.X;
							 break;
                    default: break;
                }
                SetConsoleCursorPosition(handle,coord);
                cout<<"HH"; 
        }
    }
    return 0;
}

  

标签:控制,handle,coord,键盘,cout0,SetConsoleCursorPosition,HANDLE,include
From: https://www.cnblogs.com/As10016/p/18147796

相关文章

  • 4.Java流程控制
    Java流程控制Scannner对象(获取用户的输入)//基本格式:Scannerscanner=newScanner(System.in);Stringstr=scanner.nextLine();//其中nextLine()按情况替换scanner.close();publicstaticvoidmain(String[]args){//创建一个扫描器对象,用于接受......
  • vb.net from窗体接受键盘输入信息
    PublicClassForm1'当窗体初始化时,订阅键盘按下事件PrivateSubForm1_Load(senderAsObject,eAsEventArgs)HandlesMyBase.LoadAddHandlerMe.KeyDown,AddressOfForm1_KeyDownEndSub'键盘按下事件的处理程序PrivateSubForm1_K......
  • mysql连接控制插件connection_control介绍
    原文链接:https://blog.csdn.net/yabingshi_tech/article/details/132718295前言:当连接数据库失败次数过多时,MySQL是否会限制登录呢?数据库服务端应该怎么应对暴力破解呢?本篇文章介绍下MySQL中的连接控制插件,一起来学习下此插件的作用。1.连接控制(connection_control)插件介绍......
  • 基于键盘钩子实现扫码枪输入
    基于键盘钩子实现扫码枪输入dotNet工控上位机更多资料,请关注微信公众号:dotNet工控上位机​关注 3人赞同了该文章钩子钩子是操作系统消息处理的一种机制。通过钩子,应用程序可以安装一个钩子回调过程让系统调用,从而监视系统中的消息队列。在这些消息......
  • 组态控制方法
    什么叫组态控制?从应用场景上来看,如果现在集成了一个系统,它既包括了生产A要用的全部I/O系统,又包括可生产B和C等等要用的全部I/O系统。但是ABC的生产I/O不一样(硬件组态不尽相同)。这个时候我就想用一套程序(包括硬件组态)就能适配全部的ABC生产。另外我在切换硬件组态的时候还要要求......
  • 论TCP协议中的拥塞控制机制与网络稳定性
    TCP协议中的拥塞控制机制与网络稳定性的深度探讨随着互联网的快速发展,网络流量呈现爆炸式增长,网络拥塞问题逐渐凸显。为了维护网络的稳定运行,TCP协议中引入了拥塞控制机制。这一机制的主要目的是防止过多的数据注入网络,从而避免网络拥塞。然而,尽管拥塞控制机制在很大程度上能够减......
  • pytest多线程运行控制台日志输出异常
    开启多线程后控制台日志显示错误,但是日志文件输出正确百度了一个晚上也没有解决,AI也问不出来解决办法,希望有大佬看到。开启多线程运行用例单独运行只有一个线程【gw1】输出日志信息。【gw2,gw0,gw3】都不能输出日志信息通过main()方式运行,控制台日志信息乱码......
  • C++ 类方法解析:内外定义、参数、访问控制与静态方法详解
    C++类方法类方法,也称为成员函数,是属于类的函数。它们用于操作或查询类数据,并封装在类定义中。类方法可以分为两种类型:类内定义方法:直接在类定义内部声明和定义方法。类外定义方法:在类定义内部声明方法,并在类外部单独定义方法。类内定义方法在类定义内部可以直接声明和......
  • shell系统函数和流程控制
    系统函数:1、简单示例:点击查看代码#!/bin/bashfilename="$1"_log_$(datename+%S)echo$filenamebasename:基本语法:basename[string/pathname][suffix](功能描述:basename命令会删掉所有的前缀包括最后一个('/')字符,然后将左右字符显示出来。basename可以理解为路......
  • 进程控制
    目录1.fork函数1.1如何理解fork函数有两个返回值问题1.2如何理解fork给父进程返回自己的pid,自己返回01.3如何理解同一个id值,有两个不同的值2.进程终止2.1进程退出码2.2进程退出2.2.1进程常见退出办法2.2.3exit()函数和_exit()函数3.进程等待3.1进程等待的方法3.1.1wait()函数3.2w......