几个函数

API函数GetCursorPos,它的使用方法如下:
BOOL   GetCursorPos( 
        LPPOINT   lpPoint   //   address   of   structure   for   cursor   position    
      );

SetCursorPos函数来移动鼠标位置,它的使用方法如下:
BOOL   SetCursorPos( 
        int   X, //   horizontal   position    
        int   Y   //   vertical   position
      );
模拟鼠标发出按下和放开的动作,要用到mouse_event函数来实现,具休使用方法用下:
VOID   mouse_event( 
        DWORD   dwFlags, //   flags   specifying   various   motion/click   variants
        DWORD   dx, //   horizontal   mouse   position   or   position   change
        DWORD   dy, //   vertical   mouse   position   or   position   change
        DWORD   dwData, //   amount   of   wheel   movement
        DWORD   dwExtraInfo   //   32   bits   of   application-defined   information
      );
在它的dwFlags处,可用的事件很多如移动MOUSEEVENTF_MOVE,左键按下MOUSEEVENTF_LEFTDOWN,左键放开MOUSEEVENTF_LEFTUP, 
 
keybd_event函数,其用法如下:
VOID   keybd_event( 
        BYTE   bVk, //   virtual-key   code
        BYTE   bScan, //   hardware   scan   code
        DWORD   dwFlags, //   flags   specifying   various   function   options
        DWORD   dwExtraInfo   //   additional   data   associated   with   keystroke
      );
扫描码不可以直接使用,要用函数MapVirtualKey把键值转成扫描码,MapVirtualKey的具体使用方法如下:
UINT   MapVirtualKey( 
        UINT   uCode, //   virtual-key   code   or   scan   code
        UINT   uMapType   //   translation   to   perform
      );
好了,比说此快接键是CTRL+A,接下来让我们看看实际代码是怎么写的:

    keybd_event(VK_CONTROL,mapvirtualkey(VK_CONTROL,0),0,0);
    keybd_event(65,mapvirtualkey(65,0),0,0);
    keybd_event(65,mapvirtualkey(65,0),keyeventf_keyup,0);
    keybd_event(VK_CONTROL,mapvirtualkey(VK_CONTROL,0),keyeventf_keyup,0);

首先模拟按下了CTRL键,再模拟按下A键,再模拟放开A键,最后放开CTRL键,这就是一个模拟按快捷键的周期。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值