通过并行机制处理鼠标和键盘

2016-02-19 15:54 13 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享通过并行机制处理鼠标和键盘教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - 编程语言 】

该程序通过并行机制处理鼠标和键盘的消息,为了简化程序裁减了一些代码,该程序可用为基础在该程序上添加代码可用于文本编辑,游戏和其他鼠标键盘通用的程序.#include graphics.h
  #include stdio.h
  #include conio.h
  #include dos.h
  #include bios.h
  union REGS regs;
  unsigned size;
  void far *Buffer;
  int ScanKey();
  void Mouse();
  void Init();
  int InitMouseDrive();
  int main()
  {
    int key,x,y,cx,cy;
    x=1,y=1;
    Init();/*初始化图形模式*/
    if(InitMouseDrive(&cx,&cy))/*安装鼠标*/
    {
     printf("Mouse Drive Error!");
     exit(0);
    }
    size=imagesize(cx-2,cy-2,cx+2,cy+2);
    Buffer=(void *)malloc(size);
    getimage(cx-2,cy-2,cx+2,cy+2,Buffer);
    do
    {
      if(kbhit())
        {
         key=ScanKey();/*得到按键结果*/
         rectangle(x,y,x+5,y+5);
         x+=10;
         if(x=630)
    {
      x=1;
      y+=10;
    }
        }
         else
   Mouse(&cx,&cy);/*访问鼠标信息的到新的光标坐标*/
     }while(key!=0x01);
  closegraph();
  }
  int ScanKey()/*键盘*/
  {
   return(bioskey(0)8);
  }
  void Init()/*图形驱动*/
  {
   int graphdrive=0,graphmode=0;
   initgraph(&graphdrive,&graphmode,"");
   setcolor(15);
  }
  void Mouse(int *px,int *py)/*鼠标*/
  {
   int mx,my,omx,omy;
   regs.x.ax=3;
   int86(0x33,&regs,&regs);
   omx=*px,omy=*py;
   mx=regs.x.cx;
   my=regs.x.dx;
   if(mx!=*pxmy!=*py)/*当鼠标位置改变是重新绘制光标*/
   {
     *px=mx; *py=my;
     putimage(omx-2,omy-2,Buffer,COPY_PUT);
     free(Buffer);
     size=imagesize(mx-2,my-2,mx+2,my+2);
     Buffer=(void *)malloc(size);
     getimage(mx-2,my-2,mx+2,my+2,Buffer);
     rectangle(mx-2,my-2,mx+2,my+2);
   }
  }
  int InitMouseDrive(int *rpx,int *rpy)/*鼠标驱动*/
  {
    int Found=0;
    regs.x.ax=0;
    int86(0x33,&regs,&regs);
    Found=regs.x.ax;
    regs.x.ax=7;
    regs.x.cx=3;
    regs.x.dx=635;
    int86(0x33,&regs,&regs);
    regs.x.ax=8;
    regs.x.cx=3;
    regs.x.dx=480;
    int86(0x33,&regs,&regs);
    regs.x.ax=4;
    regs.x.cx=*rpx=640/2;
    regs.x.dx=*rpy=480/2;
    int86(0x33,&regs,&regs);
    if(Found==0)
       return 1;
    return 0;
  }
  

来源:http://www.tulaoshi.com/n/20160219/1610656.html

延伸阅读
标签: 电脑入门
各位亲爱的朋友们,可曾想过,我们对着电脑,甩掉鼠标,也能参与到好玩的游戏中来?什么?骗人?NO,现在图老师小编就带你一起来实现这个不可能完成的任务,一起体验验玩转键盘的美妙乐趣.每天都在使用的键盘,你了解多少有关的功能?也许我们习惯了使用鼠标,所以对键盘的功能有多少并不在意,但其实你不知道键盘在使用起来是多么的方便,赶紧来看...
标签: 电脑入门
步骤方法 1、设置键盘控制鼠标 win XP 开始菜单控制面板辅助功能选项鼠标标签然后单击选中使用鼠标键 这样就可以用键盘来控制鼠标的光标,模拟鼠标的鼠标键都指键盘右侧的小键盘(数字键盘),使用时要使NumLock 键处于有效状态。还可以点击旁边的设置按钮来进行鼠标移动速度、NumLock 键状态、快捷键之类的详细设置。如果自...
标签: 电脑入门
他遇到的问题是:电脑睡眠之后是随便动一下鼠标或者键盘都可以唤醒,想知道win7怎样设置睡眠后用电源键(就是开机键)唤醒, 其实这个我觉得微软做得真的不算人性化,可以通过下面的方法进行设置: 1、打开设备管理器,可以通过下面的两个方法打开: A、Win+R打开运行,输入devmgmt.msc打开设备管理器 B、右键计算机,选择属性,在弹出的...
win7开启键盘鼠标键用键盘来控制鼠标的移动   启用鼠标键就是用用键盘来控制鼠标的移动,在Windows7系统中这个选项在控制面板的轻松访问中心--使键盘更易于使用中,下面是图文说明: 打开控制面板--轻松访问 选择更改键盘的工作方式 选择使用键盘控制鼠标 1、打开鼠标键 (1)按Ctrl+Esc组合键打开开...
Java.awt.Robot 类用于控制鼠标和键盘。一旦你得到这种控制,你能够通过你的Java代码做与鼠标和键盘任何类型的操作。这个类通常用于自动化测试。下面的代码样例将向您展示Robot类如何处理键盘事件。如果你运行此代码,并打开notepad,您将在notepad中看到HI CAOER.赶快试一试吧。 代码如下: import java.awt.AWTException; import java.awt.R...

经验教程

821

收藏

10
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部