2024-05-17 00:02:44 发布
网友
我有以下代码来检查屏幕是否被锁定(使用gnome屏幕保护程序)
gnome-screensaver-command -q | grep "is active"
从这个链接,https://askubuntu.com/questions/17679/how-can-i-put-the-display-to-sleep-on-screen-lock有一个关于在shell脚本中使用它的代码。但是如何使用python中的代码呢?不管它是否处于活动状态,都将其存储在变量表中。在
导入DBU
def screensaver_status(): session_bus = dbus.SessionBus() screensaver_list = ['org.gnome.ScreenSaver', 'org.cinnamon.ScreenSaver', 'org.kde.screensaver', 'org.freedesktop.ScreenSaver'] for each in screensaver_list: try: object_path = '/{0}'.format(each.replace('.', '/')) get_object = session_bus.get_object(each, object_path) get_interface = dbus.Interface(get_object, each) return bool(get_interface.GetActive()) except dbus.exceptions.DBusException: pass status = screensaver_status() print(status)
这会捕获所有的屏幕保护程序,而不仅仅是侏儒。它也不会因为使用像
您可以使用^{}在Python中执行shell命令,然后将其标准输出grep for is active行:
is active
def isScreenLocked(): import subprocess com = subprocess.Popen(['gnome-screensaver-command', '-q'], stdout = subprocess.PIPE, stderr = subprocess.PIPE) return "is active" in com.communicate()[0]
您也可以通过D-Bus与gnome屏幕保护程序对话:
import dbus def screensaver_active(): bus = dbus.SessionBus() screensaver = bus.get_object('org.gnome.ScreenSaver', '/') return bool(screensaver.GetActive()) variable = screensaver_active()
导入DBU
这会捕获所有的屏幕保护程序,而不仅仅是侏儒。它也不会因为使用像
^{pr2}$您可以使用^{} 在Python中执行shell命令,然后将其标准输出grep for
is active
行:您也可以通过D-Bus与gnome屏幕保护程序对话:
相关问题 更多 >
编程相关推荐