操作系统命令(贪吃蛇项目)

🏝1.获得句柄

GetStdHandle是⼀个Windows API函数。它用于从⼀个特定的标准设备(标准输入、标准输出或标 准错误)中取得⼀个句柄(用来标识不同设备的数值),使用这个句柄可以操作设备。

⛳️函数原型:

HANDLE GetStdHandle(DWORD nStdHandle);

#include<stdlib.h>
#include<windows.h>
int main()
{
	HANDLE houtput = NULL;
	houtput=GetStdHandle(STD_OUTPUT_HANDLE);
}

🏝2.判断键盘按键是否被按

⛳️GetAsyncKeyState函数

函数原型:
SHORT GetAsyncKeyState(it vKey)

vKey代表虚拟键位,每一个键位有一个虚拟键码,如果short类型16位的最高位是1,表示该键位是按下的,如果最高位是0,表示该键位是抬起的。

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
int main()
{
	short ret = (GetAsyncKeyState(0x35));
	while (1)
	{
		if ((ret & 1) == 1)
			printf("5被按下\n");
		else
			printf("5没有被按下\n");
	}
	return 0;
}

在比特鹏哥的电脑环境中,上面代码没有按5时,不打印,按下5以后,死循环打印5被按下。

⛳️然后我就在最前面加上Sleep(3000)。当运行程序以后在三秒内按下5时,打印5被按下。如果三秒内没有按5,则打印5没有被按下。

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<stdbool.h>
int main()
{
	Sleep(2000);
	short ret = (GetAsyncKeyState(0x35));
	if ((ret & 1) == 1)
		printf("5被按下\n");
	else
		printf("5没有被按下\n");
	return 0;
}

🏝3.控制台屏幕上的坐标COORD

COORD 是Windows API中定义的⼀个结构体,表示⼀个字符在控制台屏幕幕缓冲区上的坐标,坐标系 (0,0) 的原点位于缓冲区的顶部左侧单元格。

⛳️类型声明:

typedef struct _COORD

{

        SHORT X;

        SHORT Y;

} COORD, *PCOORD;

🏝4.改变运行窗口的光标位置

⛳️SetConsoleCursorPosition函数

函数原型:

BOOL WINAPI SetConsoleCursorPosition( HANDLE hConsoleOutput, COORD pos );

#include<stdlib.h>
#include<windows.h>
int main()
{
	COORD cursor = { 10,20 };
	HANDLE houtput = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(houtput, cursor);
	getchar();
}

   

  • 24
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 23
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我们的五年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值