我的问题是我不知道如何连接它们。我是否需要以特定方式安装pidgin才能使dbus与其进行交互?如果没有,那么pidgin gui必须运行才能让dbus使用它?我想弄清楚如何与pidgin一起使用dbus
4
A
回答
5
按this源,你可以做到以下几点:
#!/usr/bin/env python
def cb_func(account, rec, message):
#change message here somehow?
print message
import dbus, gobject
from dbus.mainloop.glib import DBusGMainLoop
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SessionBus()
bus.add_signal_receiver(cb_func,
dbus_interface="im.pidgin.purple.PurpleInterface",
signal_name="SendingImMsg")
loop = gobject.MainLoop()
loop.run()
也许你可以开始使用这种领先优势。
4
import dbus
from dbus.mainloop.glib import DBusGMainLoop
main_loop = DBusGMainLoop()
session_bus = dbus.SessionBus(mainloop = main_loop)
obj = session_bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject")
purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface")
然后你可以使用紫色对象调用一些像这样的方法:当入门使用DBUS接口与洋泾浜是D-Feet
status = purple.PurpleSavedstatusNew("", current)
purple.PurpleSavedstatusSetMessage(status, message)
purple.PurpleSavedstatusActivate(status)
2
一个真正有用的工具来使用。您可以看到所有可用的方法,甚至可以直接从GUI执行它们。
0
2
下面的代码提供了一个隐藏好友列表的示例,以及与特定联系人开始IM对话的另一个示例。
import dbus
BUS_ARGS = ('im.pidgin.purple.PurpleService', '/im/pidgin/purple/PurpleObject')
obj = dbus.SessionBus().get_object(*BUS_ARGS)
purple = dbus.Interface(obj, 'im.pidgin.purple.PurpleInterface')
# show buddy list if it is hidden
purple.PurpleBlistSetVisible(1)
# start IM conversation with specific contact
account = purple.PurpleAccountsFindConnected('', '')
conversation = purple.PurpleConversationNew(1, account, '[email protected]')
我可以推荐一些有关使用DBUS与洋泾浜有用的资源:
- Riding the D-Bus with Pidgin - 有三个独立的蟒蛇DBUS例子。
- purple-remote - 这是一个python脚本,安装在我的ubuntu机器上时,我安装了pidgin。它是一个单独的文件,很容易阅读。
- dbus-monitor - 监控dbus呼叫的好程序。它可以帮助您发现当您找不到记录的程序时正在使用的程序正在使用哪些呼叫。
- qdbusviewer - 伟大的图形工具,可以列出pidgins dbus方法。您也可以从工具本身调用它们。
相关问题
- 1. 无法弄清楚如何使用OfficeExtension.Promise
- 2. 我想弄清楚在串行通信中使用的crc
- 3. ,我无法弄清楚
- 4. DBus Finch/Pidgin without X11
- 5. 我无法弄清楚如何使用反射SetValue
- 6. PostgreSQL的:帮我弄清楚如何使用表别名
- 7. 无法弄清楚如何验证zend_form
- 8. 无法弄清楚如何连接表
- 9. 无法弄清楚如何从NMAKE
- 10. 无法弄清楚如何安装ViewPager
- 11. 无法弄清楚如何解决javax.persistence.PersistenceException
- 12. 使用simple_list_item_2并无法弄清楚如何使用setOnItemClickListener
- 13. EXEC()的错误,我无法弄清楚如何使它工作
- 14. 回文分区(如何弄清楚如何使用DFS)
- 15. 我无法弄清楚克隆在C#
- 16. fileIn,fileOut错误 - 我无法弄清楚
- 17. 我无法弄清楚的sql错误
- 18. 我无法弄清楚什么是错
- 19. 我需要弄清楚多个UIActionsSheets?
- 20. JavaScript window.getSelection()无法弄清楚
- 21. 无法弄清楚getElementById()
- 22. 如何弄清楚为什么VS挂起?从工作同事
- 23. 试图弄清楚这一切了
- 24. 问题与我的CSS,我似乎无法弄清楚
- 25. 不能在一个阵列弄清楚如何“绑定”值加在一起
- 26. JAXB - 无法弄清楚如何使用REFID正确
- 27. 如何弄清楚要使用什么版本的Jetty?
- 28. 无法弄清楚如何使用ui-route
- 29. 无法弄清楚如何在node.js中使用synchronize.js
- 30. 无法弄清楚如何使用2to3 Python转换器
Upvoted的提d英尺。似乎是一个非常好的dbus调试器工具。 – abbot 2009-10-19 14:38:57