我正在尝试让守护进程模拟按键。我已经让它在非守护进程中工作了。
#include <xdo.h>
int main()
{
xdo_t * x = xdo_new(NULL);
xdo_enter_text_window(x, CURRENTWINDOW, "Hallo xdo!", 500000);
return 0;
}
如果我为我的守护进程尝试相同的代码,我会收到以下错误
Error: Can't open display: (null)
有没有办法让它与 xdo 或其他东西一起工作?
您的进程必须知道
$DESKTOP
环境变量,指定要将这些密钥发送到的桌面会话,而您的进程似乎没有设置该环境。
这也意味着您必须意识到它需要拥有所有必要的权限,这意味着可以访问会话所有者的
~/.Xauthority
以及 /tmp/.X11-unix
中的套接字
我会把它放在那里,以防它对某人有帮助。但我不能说这会解决 OP 问题。
在我的 crontab 中,我设置了一个视觉警报器。它一开始就失败了,因为它不知道我使用的是什么显示器。但是在我要执行的命令之前添加以下内容,它开始工作。
export DISPLAY=:0; COMMAND_YOU_WISH_TO_RUN