技术解析

怎样给后台进程发送键盘消息?
0
2021-06-24 20:51:02
idczone
如果有一个进程在后台运行,这个进程本来是可以接受键盘消息的,但是它现在在后台,只能查到进程 ID,怎样给他发键盘消息呢?
如果进程是用 bg 命令放在后台的 那就可以用 fg 命令召唤到前台

使用 jobs 可以看到后台运行的进程
返回结果类似如下:
[1] Running python manage.py runserver 0:8000 &
[2]- Running python manage.py runserver 0:8001 &
[3]+ Running python manage.py runserver 0:8002 &
如果想让它回到前台,比如让第二个回到前台运行,只需使用命令 fg 2 即可

没说清,如果是 GUI 程序,需要枚举窗口,并通过 XInternAtom 获取 PID 进行匹配,核心是调用
XSendEvent ( https://www.x.org/archive/X11R7.5/doc/man/man3/XSendEvent.3.html )函数模拟键盘事件
如果是 CLI 程序,无法给后台进程输入,这是 POSIX 规定的,后台进程读输入会产生 SIGTTIN 信号
如果想达到相同的要求,就不能用后台进程,伪终端( pty )了解一下

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服