KToolInvocation

KDE 4.2 PyKDE API Reference

- KDE's Python API

# KToolInvocation Class Reference

`from PyKDE4.kdecore import *`

Inherits: QObject

## Detailed Description

KToolInvocation: for starting other programs

Desktop files for startServiceBy

The way a service gets started depends on the 'X-DBUS-StartupType' entry in the desktop file of the service:

There are three possibilities:

- X-DBUS-StartupType=None (default)
Always start a new service, don't wait till the service registers with dbus.
- X-DBUS-StartupType=Multi
Always start a new service, wait until the service has registered with dbus.
- X-DBUS-StartupType=Unique
Only start the service if it isn't already running, wait until the service has registered with dbus. The .desktop file can specify the name that the application will use when registering using X-DBUS-ServiceName=org.domain.mykapp. Otherwise org.kde.binaryname is assumed.

Multi-threading

The static members (apart from self()), have to be called from the QApplication main thread. Calls to members are only allowed if there is a Q(Core)Application object created If you call the members with signal/slot connections across threads, you can't use the return values If a function is called from the wrong thread and it has a return value -1 is returned Investigate if this is really needed or if DBUS is threadsafe anyway

For more details see <a href="http://techbase.kde.org/Development/Architecture/KDE4/Starting_Other_Programs#KToolInvocation.startServiceByDesktopPath">techbase.

## Signals
| kapplication_hook (QStringList env, QByteArray startup_id)
## Methods
| __init__ (self)
| kapplication_hook (self, QStringList env, QByteArray startup_id)
## Static Methods
| invokeBrowser (QString url, QByteArray startup_id=QByteArray())
| invokeHelp (QString anchor=QString(), QString appname=QString(), QByteArray startup_id=QByteArray())
| invokeMailer (QString address, QString subject, QByteArray startup_id=QByteArray())
| invokeMailer (KUrl mailtoURL, QByteArray startup_id=QByteArray(), bool allowAttachments=0)
| invokeMailer (QString to, QString cc, QString bcc, QString subject, QString body, QString messageFile=QString(), QStringList attachURLs=QStringList(), QByteArray startup_id=QByteArray())
| invokeTerminal (QString command, QString workdir=QString(), QByteArray startup_id="")
| invokeTerminal (QString command, QByteArray startup_id="")
int, int (pid) | kdeinitExec (QString name, QStringList args=QStringList(), QString error=0, QByteArray startup_id=QByteArray())
int, int (pid) | kdeinitExecWait (QString name, QStringList args=QStringList(), QString error=0, QByteArray startup_id=QByteArray())
OrgKdeKLauncherInterface | klauncher ()
KToolInvocation | self ()
int, int (pid) | startServiceByDesktopName (QString _name, QString URL, QString error=0, QString serviceName=0, QByteArray startup_id=QByteArray(), bool noWait=0)
int, int (pid) | startServiceByDesktopName (QString _name, QStringList URLs=QStringList(), QString error=0, QString serviceName=0, QByteArray startup_id=QByteArray(), bool noWait=0)
int, int (pid) | startServiceByDesktopPath (QString _name, QString URL, QString error=0, QString serviceName=0, QByteArray startup_id=QByteArray(), bool noWait=0)
int, int (pid) | startServiceByDesktopPath (QString _name, QStringList URLs=QStringList(), QString error=0, QString serviceName=0, QByteArray startup_id=QByteArray(), bool noWait=0)
int, int (pid) | startServiceByName (QString _name, QString URL, QString error=0, QString serviceName=0, QByteArray startup_id=QByteArray(), bool noWait=0)
int, int (pid) | startServiceByName (QString _name, QStringList URLs=QStringList(), QString error=0, QString serviceName=0, QByteArray startup_id=QByteArray(), bool noWait=0)

## Method Documentation

__init__ | ( |  | self ) |

invokeBrowser | ( | QString | url,
|  | QByteArray | startup_id=QByteArray()
| ) |  |  |

Invokes the user's preferred browser. Note that you should only do this when you know for sure that the browser can handle the URL (i.e. its mimetype). In doubt, if the URL can point to an image or anything else than HTML, prefer to use new KRun( url ).

See also <a href="http://techbase.kde.org/Development/Architecture/KDE4/Starting_Other_Programs#KToolInvocation.invokeBrowser>techbase for a discussion of invokeBrowser vs KRun.

Parameters:

  | url | The destination address
  | startup_id | for app startup notification, "0" for none, "" ( empty string ) is the default

invokeHelp | ( | QString | anchor=QString(),
|  | QString | appname=QString(),
|  | QByteArray | startup_id=QByteArray()
| ) |  |  |

Invokes the KHelpCenter HTML help viewer from docbook sources.

Parameters:

  | anchor | This has to be a defined anchor in your docbook sources. If empty the main index is loaded
  | appname | This allows you to show the help of another application. If empty the current name() is used
  | startup_id | for app startup notification, "0" for none, "" ( empty string ) is the default

invokeMailer | ( | QString | address,
|  | QString | subject,
|  | QByteArray | startup_id=QByteArray()
| ) |  |  |

Convenience method; invokes the standard email application.

Parameters:

  | address | The destination address
  | subject | Subject string. Can be QString().
  | startup_id | for app startup notification, "0" for none, "" ( empty string ) is the default

invokeMailer | ( | KUrl | mailtoURL,
|  | QByteArray | startup_id=QByteArray(),
|  | bool | allowAttachments=0
| ) |  |  |

Invokes the standard email application.

Parameters:

  | mailtoURL | A mailto URL.
  | startup_id | for app startup notification, "0" for none, "" ( empty string ) is the default
  | allowAttachments | whether attachments specified in mailtoURL should be honoured. The default is false; do not honor requests for attachments.

invokeMailer | ( | QString | to,
|  | QString | cc,
|  | QString | bcc,
|  | QString | subject,
|  | QString | body,
|  | QString | messageFile=QString(),
|  | QStringList | attachURLs=QStringList(),
|  | QByteArray | startup_id=QByteArray()
| ) |  |  |

Convenience method; invokes the standard email application.

All parameters are optional.

Parameters:

  | to | The destination address.
  | cc | The Cc field
  | bcc | The Bcc field
  | subject | Subject string
  | body | A string containing the body of the mail (exclusive with messageFile)
  | messageFile | A file (URL) containing the body of the mail (exclusive with body) - currently unsupported
  | attachURLs | List of URLs to be attached to the mail.
  | startup_id | for app startup notification, "0" for none, "" ( empty string ) is the default

invokeTerminal | ( | QString | command,
|  | QString | workdir=QString(),
|  | QByteArray | startup_id=""
| ) |  |  |

Invokes the standard terminal application.

Parameters:

  | command | the command to execute, can be empty.
  | workdir | the initial working directory, can be empty.
  | startup_id | for app startup notification, "0" for none, "" ( empty string ) is the default

Since:
  4.1

invokeTerminal | ( | QString | command,
|  | QByteArray | startup_id=""
| ) |  |  |

kapplication_hook | ( | self, |
|  | QStringList | env,
|  | QByteArray | startup_id
| ) |  |  |

Hook for KApplication in kdeui

Internal:

Signal syntax:
  `QObject.connect(source, SIGNAL("kapplication_hook(QStringList&, QByteArray&)"), target_slot)`

int, int (pid) kdeinitExec | ( | QString | name,
|  | QStringList | args=QStringList(),
|  | QString | error=0,
|  | QByteArray | startup_id=QByteArray()
| ) |  |  |

Starts a program via kdeinit.

program name and arguments are converted to according to the local encoding and passed as is to kdeinit.

Parameters:

  | name | Name of the program to start
  | args | Arguments to pass to the program
  | error | On failure, error contains a description of the error that occurred. If the pointer is 0, the argument will be ignored
  | pid | On success, the process id of the new service will be written here. If the pointer is 0, the argument will be ignored.
  | startup_id | for app startup notification, "0" for none, "" ( empty string ) is the default

Returns:
  an error code indicating success (== 0) or failure (> 0).

int, int (pid) kdeinitExecWait | ( | QString | name,
|  | QStringList | args=QStringList(),
|  | QString | error=0,
|  | QByteArray | startup_id=QByteArray()
| ) |  |  |

Starts a program via kdeinit and wait for it to finish.

Like kdeinitExec(), but it waits till the program is finished. As such it behaves similar to the system(...) function.

Parameters:

  | name | Name of the program to start
  | args | Arguments to pass to the program
  | error | On failure, error contains a description of the error that occurred. If the pointer is 0, the argument will be ignored
  | pid | On success, the process id of the new service will be written here. If the pointer is 0, the argument will be ignored.
  | startup_id | for app startup notification, "0" for none, "" ( empty string ) is the default

Returns:
  an error code indicating success (== 0) or failure (> 0).

OrgKdeKLauncherInterface klauncher | ( |  | ) |

Returns the DBus interface of the service launcher. The returned object is owned by KApplication, do not delete it!

KToolInvocation self | ( |  | ) |

int, int (pid) startServiceByDesktopName | ( | QString | _name,
|  | QString | URL,
|  | QString | error=0,
|  | QString | serviceName=0,
|  | QByteArray | startup_id=QByteArray(),
|  | bool | noWait=0
| ) |  |  |

Starts a service based on the desktop name of the service. E.g. "konqueror"

Parameters:

  | _name | the desktop name of the service
  | URL | if not empty this URL is passed to the service
  | error | On failure, error contains a description of the error that occurred. If the pointer is 0, the argument will be ignored
  | serviceName | On success, serviceName contains the D-Bus service name under which this service is available. If empty, the service does not provide D-Bus services. If the pointer is 0 the argument will be ignored
  | pid | On success, the process id of the new service will be written here. If the pointer is 0, the argument will be ignored.
  | startup_id | for app startup notification, "0" for none, "" ( empty string ) is the default
  | noWait | if set, the function does not wait till the service is running.

Returns:
  an error code indicating success (== 0) or failure (> 0).

int, int (pid) startServiceByDesktopName | ( | QString | _name,
|  | QStringList | URLs=QStringList(),
|  | QString | error=0,
|  | QString | serviceName=0,
|  | QByteArray | startup_id=QByteArray(),
|  | bool | noWait=0
| ) |  |  |

Starts a service based on the desktop name of the service. E.g. "konqueror"

Parameters:

  | _name | the desktop name of the service
  | URLs | if not empty these URLs will be passed to the service
  | error | On failure, error contains a description of the error that occurred. If the pointer is 0, the argument will be ignored
  | serviceName | On success, serviceName contains the D-Bus service name under which this service is available. If empty, the service does not provide D-Bus services. If the pointer is 0 the argument will be ignored
  | pid | On success, the process id of the new service will be written here. If the pointer is 0, the argument will be ignored.
  | startup_id | for app startup notification, "0" for none, "" ( empty string ) is the default
  | noWait | if set, the function does not wait till the service is running.

Returns:
  an error code indicating success (== 0) or failure (> 0).

int, int (pid) startServiceByDesktopPath | ( | QString | _name,
|  | QString | URL,
|  | QString | error=0,
|  | QString | serviceName=0,
|  | QByteArray | startup_id=QByteArray(),
|  | bool | noWait=0
| ) |  |  |

Starts a service based on the desktop path of the service. E.g. "Applications/konqueror.desktop" or "/home/user/bla/myfile.desktop"

Parameters:

  | _name | the path of the desktop file
  | URL | if not empty this URL is passed to the service
  | error | On failure, error contains a description of the error that occurred. If the pointer is 0, the argument will be ignored
  | serviceName | On success, serviceName contains the DCOP name under which this service is available. If empty, the service does not provide DCOP services. If the pointer is 0 the argument will be ignored
  | pid | On success, the process id of the new service will be written here. If the pointer is 0, the argument will be ignored.
  | startup_id | for app startup notification, "0" for none, "" ( empty string ) is the default
  | noWait | if set, the function does not wait till the service is running.

Returns:
  an error code indicating success (== 0) or failure (> 0).

int, int (pid) startServiceByDesktopPath | ( | QString | _name,
|  | QStringList | URLs=QStringList(),
|  | QString | error=0,
|  | QString | serviceName=0,
|  | QByteArray | startup_id=QByteArray(),
|  | bool | noWait=0
| ) |  |  |

Starts a service based on the desktop path of the service. E.g. "Applications/konqueror.desktop" or "/home/user/bla/myfile.desktop"

Parameters:

  | _name | the path of the desktop file
  | URLs | if not empty these URLs will be passed to the service
  | error | On failure, error contains a description of the error that occurred. If the pointer is 0, the argument will be ignored *
  | serviceName | On success, serviceName contains the DCOP name under which this service is available. If empty, the service does not provide DCOP services. If the pointer is 0 the argument will be ignored
  | pid | On success, the process id of the new service will be written here. If the pointer is 0, the argument will be ignored.
  | startup_id | for app startup notification, "0" for none, "" ( empty string ) is the default
  | noWait | if set, the function does not wait till the service is running.

Returns:
  an error code indicating success (== 0) or failure (> 0).

int, int (pid) startServiceByName | ( | QString | _name,
|  | QString | URL,
|  | QString | error=0,
|  | QString | serviceName=0,
|  | QByteArray | startup_id=QByteArray(),
|  | bool | noWait=0
| ) |  |  |

Starts a service based on the (translated) name of the service. E.g. "Web Browser"

Parameters:

  | _name | the name of the service
  | URL | if not empty this URL is passed to the service
  | error | On failure, error contains a description of the error that occurred. If the pointer is 0, the argument will be ignored
  | serviceName | On success, serviceName contains the DCOP name under which this service is available. If empty, the service does not provide DCOP services. If the pointer is 0 the argument will be ignored
  | pid | On success, the process id of the new service will be written here. If the pointer is 0, the argument will be ignored.
  | startup_id | for app startup notification, "0" for none, "" ( empty string ) is the default
  | noWait | if set, the function does not wait till the service is running.

Returns:
  an error code indicating success (== 0) or failure (> 0).

int, int (pid) startServiceByName | ( | QString | _name,
|  | QStringList | URLs=QStringList(),
|  | QString | error=0,
|  | QString | serviceName=0,
|  | QByteArray | startup_id=QByteArray(),
|  | bool | noWait=0
| ) |  |  |

Starts a service based on the (translated) name of the service. E.g. "Web Browser"

Parameters:

  | _name | the name of the service
  | URLs | if not empty these URLs will be passed to the service
  | error | On failure, error contains a description of the error that occurred. If the pointer is 0, the argument will be ignored
  | serviceName | On success, serviceName contains the DCOP name under which this service is available. If empty, the service does not provide DCOP services. If the pointer is 0 the argument will be ignored
  | pid | On success, the process id of the new service will be written here. If the pointer is 0, the argument will be ignored.
  | startup_id | for app startup notification, "0" for none, "" ( empty string ) is the default
  | noWait | if set, the function does not wait till the service is running.

Returns:
  an error code indicating success (== 0) or failure (> 0).