Mit c++ kmail aufrufen und fernsteuern
-
Hallo,
ich programmiere gerade unter C++/Qt-4.2.2/SuSE 9.0/Kernel 2.4.21/Oberfläche: kde 3.1.4 ein kleines Adressverwaltungsprogramm. Ich möchte, dass sich durch klicken auf die eMail-Adresse kmail automatisch öffnet und auch die Adresse und ein kleiner Standardtext bereits eingetragen sind.
Ich habe schon eine ganze Weile rumgegoogelt und keine brauchbare Lösung gefunden. dcop braucht wohl für die Fernsteuerung schon ein laufendes kmail. Es ist mir auch nicht gelungen, die Bibliotheken von dcop einzubinden.
Hat jemand hilfreiche Kenntnisse oder links?
Dank im Voraus, Johannes
-
Hallo zusammen,
dies kann mit DCOP realisiert werden. Eine gute Einführung ist unter [1] zu finden. Desweiteren sollte die API-Dokumentation bei Fragen zu den Methoden eine gute Hilfe sein. Hier das Beispiel, welches mit kmail kommuniziert...
#include <iostream> using namespace std; #include <qcstring.h> #include <qdatastream.h> #include <kapplication.h> #include <kaboutdata.h> #include <kcmdlineargs.h> #include <klocale.h> #include <dcopclient.h> int main(int argc, char **argv) { KAboutData about("mailtest", "mailtest", "0.1", "", KAboutData::License_GPL, "", 0, 0, ""); KCmdLineArgs::init(argc, argv, &about); KApplication app; DCOPClient *client = kapp->dcopClient(); client->attach(); client->registerAs(kapp->name()); QByteArray data; QDataStream arg(data, IO_WriteOnly); arg << QString("to@mail.de") << QString("") << QString("") << QString("Betreff") << QString("Body: Das ist ein Test!") << 0 << 0; if (!client->send("kmail", "KMailIface", "openComposer(QString,QString,QString,QString,QString,int,KURL)", data)) cerr << "Daten konnten nicht via DCOP gesendet werden\n"; }
Es lässt sich wie folgt kompilieren (Pfadangaben ggf. anpassen):
g++ main.cpp -L /usr/lib -lqt-mt -lkdecore -I /usr/include/kde -I /usr/include/qt3
Grüße Martin
[1] http://developer.kde.org/documentation/books/kde-2.0-development/ch13.html
Anmerkung: Verzeihung, hab nicht genau gelesen
-
DCOP ist aber in KDE 4 nicht mehr dabei! Wenn du das Programm dann noch benutzen willst, musst du auf dbus umsteigen. Ob das heute schon von kmail unterstützt wird weiß ich aber nicht.
-
Inzwischen habe ich das Problem in der zumindest für mich sinnvollsten Art gelöst. Es geht auch ohne KDE Bibliotheken oder dcop und nur mit QT. Da ich den Quellcode auch für Linux und Windows verwende, sollte sich auch das entsprechende eMail-Programm öffnen.
QDesktopServices desktopGi;
QUrl url;
url.setUrl( "mailto:"+eMailAdresse+"?subject="+betreff+"&body="+AdressenKopf+anrede );
desktopGi.openUrl( url );Dank an die Einsender von Lösungsvorschlägen.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Andere GUIs - Qt, GTK+, wxWidgets verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.