如何使用dbus-send

通過Dbus命令行的方法,可以調用程序中的某一個函數:
如下:
run-standalone.sh dbus-send --print-reply /
--type=method_call --dest=com.nokia.hello_world_app /
/com/nokia/hello_world_app com.nokia.hello_world_app.hello_world_dialog_show

這句話的意思是:
調用服務名字(/usr/share/dbus-1/service/裏面相應的service文件):com.nokia.hello_world_app
調用的服務名字下面的一個對象爲:/com/nokia/hello_world_app
調用該對象接口(com.nokia.hello_world_app)下面的一個函數(hello_world_dialog_show),這個函數沒有參數,在源代碼裏面可以看到這個函數的定義。如果有參數的話,如下類似的調用:

run-standalone.sh dbus-send --print-reply /
--type=method_call --dest=org.freedesktop.Notifications /
/org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteDialog
string:’Hello, world!’ uint32:0 string:’NAO OK!’

這裏的函數有三個參數:string,uint32,string


run-standalone.sh dbus-send --print-reply /
--type=method_call --dest=org.gnome.PowerManager /
/org/gnome/PowerManager org.gnome.PowerManager.myTest

在這裏,服務名字就是service文件裏面的名字,
對象名字一般是含斜線的,
接口名字不一定非得和服務的名字一樣。

 

dbus-send --session --print-reply --dest=org.xfce.FileManager /org/xfce/FileManager  org.xfce.Trash.QueryTrash

 

在 /usr/share/dbus-1/services/中找到有org.xfce.FileManager.service

--dest=“”參數org.xfce.FileManager.service就對應這個service

後面/org/xfce/FileManager基本是固定寫法,將前面service中點替換成/ 意思是調用這個對象

org.xfce.Trash.QueryTrash 調用具體的函數

 

 

引用自:

http://blog.csdn.net/vaqeteart/archive/2009/05/06/4155307.aspx

發佈了18 篇原創文章 · 獲贊 3 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章