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

Python016

c语言编写键盘监控器方法,第1张

键控程序简单事例:#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=0i<blefti++)

printf(" ")

for(i=0i<widthi++)

{ printf("=")

}

for(i=0i<heighti++)

{ gotoxy(bleft,i)

printf("!")

}

for(i=0i<heighti++)

{ gotoxy(width+bleft,i)

printf("!")

}

for(i=1i<widthi++)

{ gotoxy(bleft+i,height-1)

printf("=")

}

}

/*==========About pro things===========

void things()

{

}*/

/*===========About Oprtion=============*/

void zhixing()

{

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=0i<shili.yvi++)

{

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=0i<shili.yvi++)

{

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=0i<shili.xvi++)

{

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=0i<shili.xvi++)

{

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()

zhixing()

}

}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)

} 如还有疑问,请追加!

在主函数中设置switch语句如

switch(变量){

case :不同的值 然后调用相应的函数即可;

}

另一种是设置一个指针函数,

当变量变化是是之指向不同的函数亦可。

、“网络监视器”的基本使用

欲打开“网络监视器”,只需依次选择“开始→程序→附件→系统工具→网络监视器”即可进入其主窗口。

对于“网络监视器”中的功能,既可以选择菜单中的相应项目,也可以通过直接单击工具栏上的相应按钮来实现。在其主窗口工具栏上的按钮,从左到右作用依次为:

1.选择服务器:通过它可对其他计算机的“网络监视器”进行远程管理。具体的使用方法请参见后文相关内容。

2.断开用户连接:通过它可强行中断列表中指定用户对本机的连接。

3.关闭文件:通过它可强行关闭列表中指定用户所打开的指定共享文件。

4.添加共享:通过它可根据提示直接添加本机的共享资源,并为它设置相应权限。

5.停止共享:通过它可停止列表中指定资源的共享。

6.显示用户:这相当于选“查看”菜单中的“按连接”项,它是“网络监视器”主窗口的默认状态,也是最常用的窗口。此处可以查看到已连接到本机的客户机的用户名、计算机名、打开了些什么共享资源、打开些什么文件以及连接的时间和空闲的时间等资料。当客户机断开连接之后它就会自动从此列表中消失。

7.显示共享的文件夹:这相当于选“查看”菜单中的“按共享的文件夹”项。它可以查看本机已共享的资源及其共享名和权限;可添加共享,停止共享,修改共享等。

8、显示文件:这相关于选“查看”菜单中的“按打开的文件”项。它可以查看已打开的本服务器文件;可关闭文件等。

三、“网络监视器”的远程监视

本文上面部分已经讲过“网络监视器”在本地计算机上的基本使用方法,但实际上在一定条件满足的情况下,它也可以对局域网内的其他计算机进行完全相同的远程管理。请进行如下的操作:

1.启用远程管理

在远程计算机上,先进入其“控制面板→密码→远程管理”窗口,再勾选中“启用此服务器的远程管理”,接着在相应位置输入密码后按“确定”按钮保存退出。

2.使用远程管理

在本地计算机上,先进入“网络监视器”的主窗口,再选“管理员”菜单中的“选择服务器”项,在“请输入要进行管理的服务器名”的提示窗口中的“名称”处输入远程计算机的名字(比如为zhuyan),然后按“确定”按钮继续;系统接着会提示“必须提供密码才能连接”,则请在“密码”后输入“启用远程管理”一步中所设的密码值,最后按“确定”按钮即可得到新的“网络监视器”的窗口,里面当然是远程计算机的共享内容了,你所要做的,就是进行正常操作就可以啦!

注意:

1.如果在“使用远程管理”操作中,当进行到输入密码一步勾选中了“请将密码保存到密码列表”项,则当你以后再连接到远程计算机时就不用输入密码了。

2.如果要想修改共享文件夹名或其权限设置,则需要在“显示共享的文件夹”窗口中,先在列表中选中该用户,然后按键盘上的ALT+ENTER键(或者选“管理员”菜单中的“共享文件夹的属性”项),再根据提示进行操作即可。