我正在尝试使用" gnome-screensaver-command" 锁定ubuntu服务器中的屏幕,然后按回车键解锁。当我手动完成时,这工作正常,因此想到使用Python Subprocess模块自动化它。
我面临的问题是锁定屏幕并在计时器到期后输入密钥(" echo -ne \ n",知道这可以使用通过CLI发送回车)没有发生。
以下是代码段。
import subprocess
import time
cmd = subprocess.call(["/usr/bin/gnome-screensaver-command", "-l"])
time.sleep(10)
subprocess.call(["echo", "-ne", "\n"])
尝试了另一种方式:
#******THIS METHOD IS NOT LOCKING THE SCREEN AT ALL*******
cmd = subprocess.Popen(["/usr/bin/gnome-screensaver-command", "-l"], stdin = subprocess.PIPE, shell=True)
time.sleep(10)
cmd.communicate(input="\n")
按照我的要求应该做些什么呢?
答案 0 :(得分:0)
问题是屏幕保护程序读取键盘但不通过过程标准输入。
(可能)工作的东西是将键盘事件发送到桌面。有一些程序(如Windows上的caffeine
)这样做是为了防止屏幕保护程序激活,但让我提出一个不涉及键盘事件的便携式替代方案:
import subprocess
import time
cmd = subprocess.Popen(["/usr/bin/gnome-screensaver-command", "-l"])
time.sleep(10)
cmd.terminate()