KToolInvocation

KDE 4.9 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 D-Bus.
- X-DBUS-StartupType=Multi
Always start a new service, wait until the service has registered with D-Bus.
- X-DBUS-StartupType=Unique
Only start the service if it isn't already running, wait until the service has registered with D-Bus. 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 D-Bus 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)
## 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="")
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())
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)

## Signal Documentation

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

Hook for KApplication in kdeui

Internal:

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

## Method Documentation

__init__ | ( |  | self ) |

## Static Method Documentation

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.

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

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

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

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

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).

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
  | 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 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
  | 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 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
  | 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).

Deprecated:
  Use startServiceByDesktopName or startServiceByDesktopPath

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).

Deprecated:
  Use startServiceByDesktopName or startServiceByDesktopPath