Greetings !!
Comme je sais que les programmeurs ne peuvent pas laisser leur ordinateur tout seul même le jour du réveillon de Nouvel An (bonne année d'avance à tous d'ailleurs ^^), je me permet de poster une requête.
Hier j'ai calé sur un petit problème: je voudrais quand mon programme écrit en C s'arrête que la console (ici Konsole sous kde) se ferme.
La fonction kill() couplée avec getppid() retourne le pid du bash ce qui n'est pas très efficace.
J'ai donc, tout naturellement, cherché à savoir comment "discuter" avec Konsole pour lui dire "de se fermer".
C'est dbus (desktop bus) qui se charge de permettre la communication avec toutes les applications, fenêtres, etc... qui tournent sous KDE.
J'ai bien trouvé ceci:
...mais ça ne marche pas ^^
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 DBusError DBUSerreur; dbus_error_init(&DBUSerreur); DBusConnection *ConnexionAuBureau=dbus_bus_get(DBUS_BUS_SESSION,&DBUSerreur); if(ConnexionAuBureau!=NULL) { DBusMessage *message; message=dbus_message_new_method_call("org.kde.konsole","/org/kde/konsole","org.kde.KApplication","quit"); if(message!=NULL) { printf("...envoi du message...\n"); dbus_connection_send(ConnexionAuBureau,message,NULL); dbus_message_unref(message); } } dbus_error_free(&DBUSerreur);
Voici ce que je retrouve avec dbus-monitor (qui capte tous les évènements liés à dbus):
...je ne comprends pas bien... quand je faismethod call sender=:1.82 -> dest=org.kde.konsole serial=2 path=/org/kde/konsole; interface=org.kde.KApplication; member=quit
error sender=:1.36 -> dest=:1.82 error_name=org.freedesktop.DBus.Error.UnknownObject reply_serial=2
string "No such object path '/org/kde/konsole'"
qdbus org.kde.konsole /KApplication, j'obtiens:
...pour moi org.kde.desktop existe et l'interface org.kde.KApplication existe également... le path ne semble pas correct que je mette /org/kde/konsole/MainApplication ou pas...
Je cherche de la documentation (elle existe sur le site de freedesktop mais c'est de la m****) au format PDF, ou des explications supplémentaires de la part
de personnes qui ont déjà "chipoté" avec dbus.
Partager