linux下鼠标键盘按键的模拟

本文介绍如何在Linux下模拟鼠标和键盘输入。通过分析/dev/input目录下的设备文件,如event和mice,找到对应输入设备,并利用特定数据格式向设备文件写入数据来实现模拟输入。文章探讨了event结构体定义以及为何选择event而非mice进行模拟,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

这段时间写了一个windows下远程监控linux的软件,其中一个最核心的问题就是按键的模拟

windows下发送按键信号,linux下接收后然后模拟标准键盘输入


linux下有一个文件夹  /dev/input  ,包含了Linux下所有的输入设备  

我们用ls /dev/input 可以查看Linux下所有输入设备,比如说 event1 event2  mice 等等..

如果我们使用cat命令 cat /dev/input/mice 会发现这是个空文件,如果我们移动鼠标,然后终端下会显示写乱码,让我们停止鼠标输出就会结束


同学们可以把input文件夹下的所有文件一个一个的用cat命令打开,点击鼠标或者键盘  如果发现有乱码在终端上输出,很有可能你就找到了对应此文件的设备。

其实查找这些设备是可以通过另外一种方式  :   cat /proc/bus/input/devices  

其结果详细介绍了哪个event设备文件对应着哪个实际的设备 具体结果就不显示了,希望大家自己动手操作


其Linux下的鼠标键盘输入就是通过向这些设备文件写入具有特定格式的数据来实现鼠标键盘输入的效果的、


于是,我们便可以模拟这些数据格式来模拟输入


输入设备有几种文件  event、  mouse 、 mice  等

这些设备没见没有固定的数量,如果你装一个手写板,这里会有会出现一个手写板的设备文件,驱动就是通过增加这些设备文件来空着设备的,不过驱动级的Linux没哟研究过,没法给读者提供更多的知识

event  是键盘鼠标发生的事件,其数据格式linux下  linux/input.h有着详细的定义,我们可以通过event这个来模拟鼠标键盘输入,具体方法往下看

event的结构体定义如下

struct input_event {
struct timeval time;//事件发生时间
__u16 type;  //事件类型
__u16 code;  //事件码
__s32 value;  //事件值
};



mouse  是鼠标 (没搞明白,反正是鼠标)

mice   是鼠标的集合,所有鼠标事件都会发送到这个文件里面的  并且他的存储的数据格式和event的不一样  所以我们不能通过mice来实现我们的目的



比如

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值