问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言编写键盘监控器方法

发布网友 发布时间:2023-05-25 20:11

我来回答

1个回答

热心网友 时间:2024-04-11 15:26

键控程序简单事例:#include <string.h>
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define ESC 0x011b
/*======== ALL VAR==============*/
int bleft=10;
int width=52;
int height=20;
/*=========About Location===========*/
typedef struct
{
int x, y;
int xv, yv;
}Location;/*=============About Welcome=============*/
void menu()
{ printf(" welcom to coming\n");
printf(" =======================================================\n");
printf(" ! In the game please press ESc to quit! !\n");
printf(" ! Enter the game?(Y/N) !\n");
printf(" =======================================================\n");
}
/*=========About border==========*/
void bianjie()
{
int i;
for(i=0;i<bleft;i++)
printf(" ");
for(i=0;i<width;i++)
{ printf("=");
}
for(i=0;i<height;i++)
{ gotoxy(bleft,i);
printf("!");
}
for(i=0;i<height;i++)
{ gotoxy(width+bleft,i);
printf("!");
}
for(i=1;i<width;i++)
{ gotoxy(bleft+i,height-1);
printf("=");
}
}
/*==========About pro things===========
void things()
{
}*/
/*===========About Oprtion=============*/
void xing()
{
int i,key;
Location shili;
shili.x=bleft+1;
shili.y=1;
shili.xv=5;
shili.yv=5;
while(1)
{
key=bioskey(0);
if(key==ESC)/**/
break;
else if(key==UP)
{
for(i=0;i<shili.yv;i++)
{
if(shili.y-shili.yv>1)
{
shili.y--;
gotoxy(shili.x,shili.y+1);
printf(" ");
gotoxy(shili.x,shili.y);
printf("%c\b", 2);
}
else {
if(shili.y>1)
{
shili.y--;
gotoxy(shili.x,shili.y+1);
printf(" ");
gotoxy(shili.x,shili.y);
printf("%c\b", 2);
}
else { shili.y++;
gotoxy(shili.x,shili.y);
printf("%c\b", 2);
gotoxy(shili.x,shili.y-1);
printf(" ");
}
}
}
}
else if(key==DOWN)
{
for(i=0;i<shili.yv;i++)
{
if(shili.y+shili.yv<height)
{
shili.y++;
gotoxy(shili.x,shili.y-1);
printf(" ");
gotoxy(shili.x,shili.y);
printf("%c\b", 2);
}
else {
if(shili.y<height)
{
shili.y++;
gotoxy(shili.x,shili.y-1);
printf(" ");
gotoxy(shili.x,shili.y);
printf("%c\b", 2);
}
else { shili.y--;
gotoxy(shili.x,shili.y);
printf("%c\b", 2);
gotoxy(shili.x,shili.y+1);
printf(" ");
}
}
}
}
else if(key==LEFT)
{
for(i=0;i<shili.xv;i++)
{
if(shili.x-shili.xv>bleft)
{
shili.x--;
gotoxy(shili.x+1,shili.y);
printf(" ");
gotoxy(shili.x,shili.y);
printf("%c\b", 2);
}
else {
if(shili.x>bleft)
{
shili.x--;
gotoxy(shili.x+1,shili.y);
printf(" ");
gotoxy(shili.x,shili.y);
printf("%c\b", 2);
}
else { shili.x++;
gotoxy(shili.x,shili.y);
printf("%c\b", 2);
gotoxy(shili.x-1,shili.y);
printf(" ");
}
}
}
}
else if(key==RIGHT)
{
for(i=0;i<shili.xv;i++)
{
if(shili.x+shili.xv<width+bleft)
{
shili.x++;
gotoxy(shili.x-1,shili.y);
printf(" ");
gotoxy(shili.x,shili.y);
printf("%c\b", 2);
}
else {
if(shili.x<width+bleft)
{
shili.x++;
gotoxy(shili.x-1,shili.y);
printf(" ");
gotoxy(shili.x,shili.y);
printf("%c\b", 2);
}
else { shili.x--;
gotoxy(shili.x,shili.y);
printf("%c\b", 2);
gotoxy(shili.x+1,shili.y);
printf(" ");
}
}
}
}
}}
/**********************************/
void main()
{ char ch;
clrscr();
menu();
ch=getch();
if(ch=='N'||ch=='n')
return;
else if(ch=='Y'||ch=='y')
{ clrscr();
bianjie();
xing();
}
}C语言获取键值函数事例:/*函数名称: bioskey
函数原型: int bioskey(int cmd)
函数功能: 读取键盘值
函数返回: cmd=0:返回一个键盘值(ascii值放在低位,扫描码放在高位),若无按键,一直等
cmd=1:查询键盘是否按下:0-无键按下,非0-有键按下
cmd=2:返回控制键状态,返回值保存在低8位中
0-右边的shift键按下 5-已打开Scroll_Lock
1-左边的shift键按下 6-已打开Num_Lock
3-Ctrl键按下 7-已打开Caps_Lock
4-Alt键按下 8-已打开Insert
参数说明:
所属文件: <bios.h>*/
#include <stdio.h>
#include <bios.h>
#include <ctype.h>
int main()
{
int key, shift;
int lastshift;
while (1)
{
shift=bioskey(2);
if(shift!=lastshift)
printf("Shift=0x% 02x\n",shift);
if(bioskey(1))
{
key=bioskey(0);
if((key&0xFF)=='q')
break;
printf("Key=0x% 04x",key);
}
lastshift=shift;
}
return 0;
}文件存在性判断事例:#include <stdio.h>
#include <io.h>
int file_exists(char *filename);
int main()
{
printf("Does myfile.FIL exist: %s",file_exists("myfile.FIL") ? "YES" : "NO");
getch();
return 0;
}
int file_exists(char *filename)
{
return (access(filename,0)==0);
} 如还有疑问,请追加!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦幻西游我这吸血鬼值多少钱 梦幻西游吸血鬼价格问题,这个吸血鬼能卖多少钱啊?MHB比例100元=500W 给... 诚心求解梦幻西游,我这只吸血鬼能值多少钱?我要个能卖出去的价... 梦幻西游手游,我现在69级,买个79的吸血鬼,可以带吗, 我梦幻西游69J号买了个119级吸血鬼,但是不能摆摊出售,那可以跟别人交易... 梦幻西游手游洗出变异吸血鬼不能摆摊 梦幻西游本人80级 有一只吸血鬼 系统不给摆摊 请问能否交易 和平精英 和平精英封号了能注销掉吗? 梦见想蛇一样的东西掉进下水道 梦见包掉到下水道里 C语言中the file is not exist 是什么原因 什么是月光曲的画面内容? 云南产佛心果,菩提果吗 电信无星及影响星级原因有哪些? 不是五星用户什么意思 为什么手机拍照软件是扁的呢 云顶之弈用榔头的是什么技能 汉文化基地位于哪里 联通猫所有指示灯一起闪是什么意思 光猫全部的灯一起闪是什么情况 dnf目前的三款龙袍分别是那年出的 dnf第一期龙袍怎么合成 dnf第一套神器装扮绝版了吗 六十甲子的天数是怎样计算的 北京社保如何销户 北京住房公积金两个账户一个封存一个缴存能贷款吗 ...上面又多出一个已转出中心销户部 而且里面的余额为零 请高手帮忙解... 一千块钱买的绿色翡翠,我总感觉它像玻璃一样,还有裂纹在灯光下照射... It&#39;s the Food pyramid. Follow this. lt can make you healthy翻译_百... 璃种天然翡翠 戒指 大概要多少钱?是像玻璃样透明吗? 机油[jī yóu]什么意思?近义词和反义词是什么?英文翻译是什么? 我国建筑节能技术的研究开发与发展前景探讨? 笔式可视故障探测仪怎么使用 讨论估计量的相合性的意义 概率论数理统计 相合估计量问题 一个定理不理解 定理如下所示:_百度知 ... 运放之后,为什么药接个电阻,还有AD lin输出信号是多少啊 求高手帮忙起英文名!! 在美国常购物者速进,高分。 绒布很皱有什么办法弄平 底盘悬挂系统保养喷剂多久换一次好? 汽车悬挂可以喷底盘装甲漆吗 汽车悬挂有锈是喷铝喷剂还是底盘装甲 钧谐的结构钧谐的结构是什么 谐晤的意思谐晤的意思是什么 对汽车底盘如何进行有效清理保养? 公有住房是小产权房吗 住了30年的公房拆迁有补贴吗 离婚十多年了,这种情况购买公房需要前妻签字吗? 现代悦纳车身尺寸大小 悦纳长宽高 悦纳车型尺寸及简介