PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DCOP mit Python?



Lukas
22.02.2005, 19:55
Moin,

ich habe gelesen, dass viele KDE-Applications über DCOP miteinander kommunizieren. Jetzt wollte ich wissen, ob es möglich ist, DCOP mit Python anzusteuern. Google hat nichts vernünftiges ausgespuckt (oder ich hab mal wieder die falschen Suchbegriffe verwendet...).
Hat jemand 'ne Idee bzw. weiß das?

Jesus_666
22.02.2005, 21:43
Hmmm, zur Not könntest du einfach das Programm aufrufen. Python hat doch eine Funkion zum Aufrufen externer Programme, oder?

Wenn du dein Python-Programm per DCOP ansteuern willst, da wird's knifflig...

Lukas
22.02.2005, 21:52
Ja, mit Python kann ich System Calls fabrizieren, und wahrscheinlich noch jede Meng anderen Mist in der Richtung.
Ich will eigentlich nur Input/Output für konversation-Scripte haben, aber dafür brauche ich eben DCOP (zumindest, wenn das stimmt, was du mir erklärt hast).

Jesus_666
22.02.2005, 22:10
Hmm. Ich baue z.Z. meinen Desktop um (Fedora auf Ubuntu), deshalb komme ich gerade schlecht an meine Konversation-Skripte.
An sich übergibt Konversation alle relevanten Daten (Name des Prozesses etc.) über normale Parameter an dein Skript, also das was hinterher als $1, $2, $3... oder argv[0], argv[1]... etc. erreichbar ist. Von daher mußt du also nur die übergebenen Parameter verarbeiten; die werden zum Teil einfach in den DCOP-Aufruf umgeleitet.

Um den Kram zu Konversation zurückzuschicken rufst du dann einfach das Programm dcop auf. Laut Google ist dafür die Funktion os.system() geeignet. Die Parameter, die du brauchst, mußt du dir aus einem der mitgelieferten Skripte raussuchen (sollten eigentlich die ersten drei Parameter sein, die Konversation dir übergeben hat). Oder du wartest bis morgen Nachmittag, dann kann ich meine Skripte suchen gehen.


BTW, wenn man einfach mal auf der Kommandozeile mit dcop rumspielt kann man eine Menge über die ansteuerbaren Interfaces der ganzen Programme lernen.

Lukas
23.02.2005, 12:52
Auf die Idee mit dem System-Call bin ich auch gerade gekommen, nach einiger Rumprobiererei klapp es auch.
Noch eine Frage: kann ich über DCOP auch input für ein Script holen (also z.B. dass ich sehen kann, wer als letztes was geschrieben hat)?

Edit:
Den Input kann man wohl nicht direkt über DCOP holen, man muss mit den Logfiles abgleichen.