$system.dbus Performs a D-Bus call
Usage
<variant> $system.dbus(<service:string>,<path:string>,<interface:string>,<method:string>[,<bus_type:string>[,<parameter1:string>[,<parameter2:string>[,...]]]])
Description

This function allows performing simple D-Bus calls without executing an external process. This feature is available ONLY under unix: this means that this function is absolutely non portable (don't use it in scripts that you're going to distribute). <application> is the name of the application being called, <objectid> is the identifier of the object called, <function> is the function to be executed on the remote object and <parameter1>,<parameter2>,... is the list of parameters to be passed. The <function> name must contain the trailing parenthesis and parameter specification (see examples). The <bus_type> specifies the bus to connect, use "system" for systemBus or "session" for sessionBus. If it's leaved blank, it will use sessionBus. The parameters MUST be in the form "type=value" where "type" is the C++ type of the parameter and value is the string representation of the parameter data. Currently KVIrc supports only QString,QByteArray,bool,int and uint data types.
The returned value is the string representation of the returned data if the return type is known, otherwise it is the name of the data type returned.
If the service name is prefixed with "?" then the call is performed in "remote test" mode: no "remote" errors are printed and the function returns 1 if the call executed successfully and 0 if the call failed. This can be used with the very first call to programmaticaly test if the remote application is running.

Examples

#get a string list of torrents currently in queue in ktorrent
echo $system.dbus("org.ktorrent.ktorrent","/KTorrent", "org.ktorrent.KTorrent","torrents")
#stop a torrent in ktorrent by its name
echo $system.dbus("org.ktorrent.ktorrent","/KTorrent", "org.ktorrent.KTorrent","stop","QString=Torrent Name")
#start the kde task manager
echo $system.dbus("org.freedesktop.ScreenSaver","/App", "org.kde.krunner.App","showTaskManager")
#get the clipboard contents using dbus
echo $system.dbus("org.kde.klipper","/klipper", "org.kde.klipper.klipper","getClipboardContents")

Index, Functions