• Linux环境下模拟鼠标操作 2016-12-05 17:04:29
    Linux/input.h中定义了以下结构体类型,用于标准按键的编码操作: Struct input_evnet{ Struct timeval time; //按键时间 _u16 type;//类型 _u16 code;//模拟成什么按键码 _u32 value;//...
    Linux/input.h中定义了以下结构体类型,用于标准按键的编码操作:
    

    Struct input_evnet{

    Struct timeval time; //按键时间

    _u16 type;//类型

    _u16 code;//模拟成什么按键码

    _u32 value;//按下还是释放

    }

    Type:

    EV_KEY:表示键盘;EV_REL表示相对坐标;EV_ABS表示绝对坐标

    Code:

    若事件类型为EV_KEY,code为按键的键值码,vaule0表示释放,value1表示按下;若事件类型为EV_REL,codeREL_X(表示鼠标的X轴方向)或者REL_Y(表示鼠标的Y轴方向)

    模拟鼠标输入

    #include <string.h>

    #include <stdio.h>

    #include <sys/types.h>

    #include <sys/stat.h>

    #include <fcntl.h>

    #include <Linux/input.h>

    #include <stdio.h>

    #include <sys/time.h>

    #include <sys/types.h>

    #include <unistd.h>

    /*

    *模拟鼠标轨迹球

    */

    void simulate_mouse(int fd, int value)

    {

    struct input_event event;

    memset(&event, 0, sizeof(event));

    gettimeofday(&event.time, NULL);

    event.type = EV_REL;

    event.code = REL_X;//鼠标x轴方向

    event.value = value;//x轴方向相对位移

    write(fd, &event, sizeof(event));//写入

    event.type = EV_REL;

    event.code = REL_Y;//鼠标y轴方向

    event.value = value;//y轴方向相对位移

    write(fd, &event, sizeof(event));//写入

    event.type = EV_SYN;//同步

    event.code = SYN_REPORT;

    event.value = 0;

    write(fd, &event, sizeof(event));

    }

    /*

    *模拟鼠标单击,先按下后释放

    */

    void simulate_mouse_click(int fd,int value){

    struct input_event event;

    memset(&event, 0, sizeof(event));

    gettimeofday(&event.time, NULL);

    event.type = EV_KEY;

    event.code = value;

    event.value = 1;

    if(write(fd,&event,sizeof(event)) < 0){

    LOGE("mouse key write error.\n");

    }

    event.type = EV_SYN;

    event.code = SYN_REPORT;

    event.value = 0;

    write(fd, &event, sizeof(event));

    event.type = EV_KEY;

    event.code = value;

    event.value = 0;

    if(write(fd,&event,sizeof(event)) < 0){

    LOGE("mouse key write error.\n");

    }

    event.type = EV_SYN;

    event.code = SYN_REPORT;

    event.value = 0;

    write(fd, &event, sizeof(event));

    return;

    }

    int main(void)

    {

    int fd_mouse;

    int value = 0;

    fd_mouse = open("/dev/input/event2", O_RDWR);//打开设备节点

    if (fd_mouse <= 0)

    {

    printf("error open mouse\n");

    return -2;

    }

    while (1)

    {

    value = 0;

    for (value = 0; value < 10; value++)

    {

    simulate_mouse(fd_mouse, value);

    usleep(20*1000);

    }

    getchar();

    for (value = 0; value > -10; value--)

    {

    simulate_mouse(fd_mouse, value);

    usleep(20*1000);

    }

    getchar();

    }

    simulate_mouse_click(fd_mouse,BTN_LEFT);//点击鼠标左键

    close(fd_mouse);

    return 0;

    }
    展开全文
  • linux 模拟鼠标事件 qt 2011-08-11 11:38:41
    模拟鼠标移动: ...1."/dev/input/event2"为USB鼠标对应的事件设备文件,可以通过cat /proc/bus/input/devices查看; 2."/dev/input/mice"和"/dev/input/event2"的区别,mice是所有鼠标的集合,即所
  • linux系统虚拟鼠标的实现 2017-05-21 12:11:42
    通过http://blog.csdn.net/jklinux/article/details/72570663博文可以得知:一个输入设备获取到...而且鼠标的相对坐标事件中的type值为EV_REL时, code的值为REL_X时, value的正值表示右移,负值表示左移, 移动量为value
  • Linux下创建一个虚拟鼠标设备还是比较简单的,使用内核uinput模块提供的函数即可。创建出虚拟鼠标以后,在主线程监听键盘的事件,当特定的键(此处使用了小键盘的数字键8、2、4、6)被按下或弹起后,进行记录。在...
  • Linux 有自己的 input 子系统,可以统一管理鼠标和键盘事件。基于输入子系统 实现的 uinput 可以方便的在用户空间模拟鼠标和键盘事件。当然,也可以自己造轮子, 做一个字符设备接收用户输入,根据输入,投递 input ...
  • Linux 虚拟鼠标,键盘 2010-03-31 10:43:00
    Linux 有自己的 input 子系统,可以统一管理鼠标和键盘事件。基于输入子系统 实现的 uinput 可以方便的在用户空间模拟鼠标和键盘事件。当然,也可以自己造轮子, 做一个字符设备接收用户输入,根据输入,投递 input ...
  • #ifndef _INPUT_H #define _INPUT_H /*  * Copyright (c) 1999-2002 Vojtech Pavlik ... * This program is free software; you can redistribute it and/or modify it ... * under the terms of the GNU Gener
  • 虚拟鼠标驱动程序 2009-09-15 10:57:00
    http://www.limodev.cn/blog作者联系方式:李先静 前段时间写一个程序,要向系统中注入mouse事件,我又不想信赖于具体的GUI,就写一个虚拟mouse设备驱动程序,感觉挺好用的,不过后来发现 linux其实有一个uinput驱动...
  • 最近看了些linux模拟鼠标按键的方法,但是都要从/proc/bus/input/devices中去查看现有的鼠标设备,然后重用该设备,比较麻烦,而且不是很好——可能对应不同硬件要作一定改动。后来学习发现可以让用户态程序利用...
  • M. Tim Jones, 顾问工程师, Emulex 简介: 虚拟化的含义丰富,应用...我们还将了解现有的其他一些虚拟化技术,例如 Linux 上操作系统的虚拟化。 发布日期: 2010 年 9 月 20 日 级别: 中级 访问情况 :
  • Linux虚拟鼠标和键盘 2013-07-19 10:13:00
    Ubunto10.10调试通过,代码如下: /*! * \file testmouse.c * \brief * \author dota, makefilesb@163.com * \version 0.00 * \date 13-04-19 11:30:16 */ #include #include #include ...#in
  • 对于鼠标驱动和前面分析过的键盘驱动都是共用input模型,所以,对于事件上报和处理的方式都没有区别,只是mouse鼠标驱动当上报完dx,dy,left,middle,right之后,需要调用input_sync(),将前面上报的仅仅填充在缓冲区中的...
  • 有一次vmware安装red hat linux后,进入x-windows界面,鼠标不能用,百思不得其解,因为自己的安装linux的过程中设置绝对是没有问题的啊,鼠标设置肯定是usb带滑轮,这个肯定没有错.  原因就处在这儿,由于vmware软件也...
  • Linux上的虚拟化技术 2017-08-06 18:03:34
    另外介绍了一些其它的虚拟化技术, 比如Linux上操作系统级的虚拟化技术.  虚拟化把事物从一种形式改变为另一种形式. 计算机的虚拟化使单个计算机看起来像多个计算机或完全不同的计算机.  虚拟化技术也可以使多台...
  • 在vMware装上linux鼠标无法使用问题解答 昨天装了Linux+VMware,还用得好好的,今天鼠标就不能用,现在终于把问题解决了! 目前大部分鼠标是usb接口的,特别是笔记本。在vMware装上linux鼠标类型选择带滑轮的USB...
  • 虚拟鼠标设备驱动 2018-09-06 13:42:02
    虚拟鼠标设备驱动 #include &lt;linux/device.h&gt; #include &lt;linux/module.h&gt; #include &lt;linux/input.h&gt; #include &lt;linux/err.h&gt; #include &lt;linux/...
  • 虚拟机Linux鼠标没反应 2016-11-01 00:37:25
    1、从图形界面进入文本模式: 方法一:按Ctrl+Alt+F1,输入login和password 方法二:看到操作系统列表后,按e进入编辑模式,移动光标到以kernel开头的那一行,再次键入e,这时会出现一个grub edit>的命令提示...
  • 转自 http://blog.csdn.net/outblue/archive/2010/02/04/5288760.aspx<br />Dashboard January 2007 Issue <br />Mehul Patel <br />Using uinput driver in Linux- <br />2.6.x to send user input <br />Dashboard January 2007 Issue <br />Using uinput driver in Lin
  • QT 模拟鼠标事件 2014-05-28 16:43:15
    模拟鼠标按键 和模拟键盘按键类似,也是通过发送相应的事件来实现的,安装相应的事件监听器,具体发送事件: QPoint pos; pos.setX(88); pos.setY(58); QMouseEvent *mEvnPress; QMouseEvent *mEvnRelease; ...
  • 今天在虚拟机上安装LINUX,在选择鼠标类型的时候选了带滚轮的USB鼠标(我的笔记本的鼠标是这种),可是发现选了之后鼠标就不能识别了,后续的步骤都靠键盘操作。后来GOOGLE了一下,发现应该选择PS/2鼠标,因为选的...
1 2 3 4 5 ... 20
收藏数 30,078
精华内容 12,031