zoukankan      html  css  js  c++  java
  • 模拟键盘输入linux / windows

    1.linux 下无须管理员权限

    #include <X11/extensions/XTest.h>
    #include <X11/Xlib.h>
    #include <X11/keysymdef.h>
    
    
    int ClickSimulation::SimulationLeftArrow()
    {
      Display* disp = XOpenDisplay(NULL);
      if(disp == NULL)
      {
        return 0;
      }
                            //XK_Left
      XTestFakeKeyEvent(disp, XKeysymToKeycode(disp, 0xff51), True, CurrentTime);
      XTestFakeKeyEvent(disp, XKeysymToKeycode(disp, 0xff51), False, CurrentTime);
    
      XCloseDisplay(disp);
      return 1;
    }
    

    注意事项:
      1.0xff51 是向左的按键的码值,因为编译的时候不识别 XK_LEFT,故直接将码值写在这个地方。
      2.如果使用cmake编译,需在CMakeList.txt中添加

             LINK_LIBRARIES(X11)

             LINK_LIBRARIES(Xtst)

      3.如果使用qt编译,需要在.pro文件中添加    

        LIBS += -lX11
        -lXtst

      4.如果报 X11/extensions/XTest.h:没有那个文件或目录。缺少依赖,根据自己的操作系统来安装依赖。

    2.linux 下须要管理员权限

      这种方法有很多介绍。原理是通过向输入设备 /dev/uinput 或者 /dev/input/event1 设备写入数据来实现的。

    3.windows 

    #include <Windows.h>
    #icnlude <Winuser.h>

    //模拟capital键(大写键)按下松开 keybd_event(VK_CAPITAL, NULL, KEYEVENTF_EXTENDEDKEY | 0, NULL); keybd_event(VK_CAPITAL, NULL, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, NULL);

      

     

  • 相关阅读:
    Kerberos协议
    闪电咂摸软件隐喻与建模
    hibernate set集合配置排序
    java小游戏2048实现
    java版餐饮管理系统
    使用HTML5对网页元素进行拖动
    投票网站如何防止机器刷票
    JAVAEE 企业网站建设发布与网站备案流程
    JavaScript 离开页面提醒,在编辑页面常用的关闭提醒功能
    java Swing局域网聊天软件+ 情侣电脑钢琴
  • 原文地址:https://www.cnblogs.com/devil-shadow/p/14006684.html
Copyright © 2011-2022 走看看