def get_entry_path_by_name(entry_name="文件管理器"): dbus_path_list = get_entries_path_list() for item in dbus_path_list: interface = get_session_dbus_interface(DBUS_NAME, item, iface_name='org.freedesktop.DBus.Properties') if entry_name == str(interface.Get(IFACE_NAME, 'Name')): return item else: raise ValueError(f'未找到属性Name为{entry_name}的Entry对象')
def get_entry_path_by_name(entry_name="文件管理器"): """ 根据entry的属性值Name,获取对应的dbus path :param entry_name: 名称 :return: dbus path or raise error """ dbus_path_list = get_entries_path_list() for item in dbus_path_list: interface = get_session_dbus_interface( DBUS_NAME, item, iface_name='org.freedesktop.DBus.Properties') if entry_name == str( interface.Get('com.deepin.dde.daemon.Dock.Entry', 'Name')): return item else: raise ValueError(f'未找到属性Name为{entry_name}的Entry对象')
def get_window_ids_by_name(entry_name="文件管理器"): """ 获取entry所有窗口的id :param entry_name: 名称 :return: id list """ id_list = [] dbus_path = get_entry_path_by_name(entry_name) interface = get_session_dbus_interface( DBUS_NAME, dbus_path, iface_name='org.freedesktop.DBus.Properties') result = interface.Get('com.deepin.dde.daemon.Dock.Entry', 'WindowInfos') if isinstance(result, dbus.Dictionary) and result: for key in result: id_list.append(int(key)) return id_list
def get_properties_value(properties: str): property_obj = get_session_dbus_interface( dbus_name, dbus_path, iface_name='org.freedesktop.DBus.Properties') result = property_obj.Get(iface_name, properties) return result
def dbus_interface(): return get_session_dbus_interface(dbus_name, dbus_path, iface_name)
def dbus_interface(): return get_session_dbus_interface(DBUS_NAME, DBUS_PATH, IFACE_NAME)
def get_properties_value(properties: str): property_obj = get_session_dbus_interface( DBUS_NAME, DBUS_PATH, iface_name='org.freedesktop.DBus.Properties') result = property_obj.Get(IFACE_NAME, properties) return result