
Prüfen, ob KDE läuft
-
- Beiträge: 688
- Registriert: Mi 3. Okt 2007, 21:00
- OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
- CPU-Target: x86_64
Prüfen, ob KDE läuft
Hallo! Wie kann ich prüfen, ob mein Programm unter GNOME oder KDE läuft? Erstaunlich viele Leute haben beides installiert, und so müsste ich von meinem Programm eine KDE und eine GNOME-Version erstellen, was blöde und umständlich ist. 

-
- Beiträge: 370
- Registriert: Di 6. Feb 2007, 09:29
- OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
- CPU-Target: 32bit i386, ARM
- Wohnort: Oberösterreich
Könnte Probleme bereiten, wenn jemand z.B. XDM oder Entrance als Displaymanager verwendet.Könntest z.b. nach tasts schaun ob kdm oder gdm laufen
Eine Alternative ist nach dem jeweiligen WM zu schauen (also kwin oder metacity), aber auch darauf würde ich mich nicht verlassen. Was wenn einer, wie ich, XFCE verwendet? Oder ion oder ratpoisen, openbox, oder gar Gnome mit Sawfish oder KDE mit OpenBox?
Du hast keinen Anhaltspunkt, der dir hilft, das notwendige Toolkit (und darum geht es letztendlich, ob ich GTK oder QT verwende) herauszufinden.
Mach einfach deine Software + Desktopstarter und Menüdateien und liefere 2 Pakete aus, eins für QT und eins für GTK. Dann kann jeder das in sein Gnomemenu, Kmenu oder was auch immer packen. Die Leute wissen meist ohnehin, welches Toolkit sie verwenden.
-
- Beiträge: 958
- Registriert: Mo 11. Sep 2006, 22:56
Sowas mit ps auslesen hatten wir doch schon mal:
http://www.lazarusforum.de/viewtopic.php?p=9121#9121" onclick="window.open(this.href);return false;
http://www.lazarusforum.de/viewtopic.php?p=9121#9121" onclick="window.open(this.href);return false;
Der Output beträgt höchstens zwei Zeilen, dank des -C
Du kannst die Sache noch weiter einschränken:
ps -T -Cksmserver --no-heading
Das gibt überhaupt nur was zurück, wenn ksmserver läuft auf deinem Terminal.
Aber dein Geschwindigkeitsproblem sehe ich nicht. Das macht man doch nur beim Programmstart einmal.
Du kannst die Sache noch weiter einschränken:
ps -T -Cksmserver --no-heading
Das gibt überhaupt nur was zurück, wenn ksmserver läuft auf deinem Terminal.
Aber dein Geschwindigkeitsproblem sehe ich nicht. Das macht man doch nur beim Programmstart einmal.
Haste ne bessere Lösung? Immer her damit!Christian hat geschrieben:Naja ich versteh ihn schon es ist ne Lösung aber sicher genau so toll wie Zitronensaft pressen indem man die dinger mit Wucht aus dem Fenster wirft.
Aber unter Linux ist das Ausführen von Shell Kommandos ziemlich üblich.
Wo soll denn da ein Problem sein?
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Das man erst nen fremden prozess starten muss statt einfach ne api funktion zu nehmen. Und dessen Ausgabe parst statt die Informationen direkt strukturiert zu bekommen.
Ich kenn jetzt aber auf die schnelle die api funktionen nicht die man dazu nutzen kann
vieleicht einfach mal schaun wie ps das macht ?!
Ich kenn jetzt aber auf die schnelle die api funktionen nicht die man dazu nutzen kann

W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Unter Linux ist die Shell das APIChristian hat geschrieben:Das man erst nen fremden prozess starten muss statt einfach ne api funktion zu nehmen. Und dessen Ausgabe parst statt die Informationen direkt strukturiert zu bekommen.

Viel Spass beim lesen des ps C Codes.Ich kenn jetzt aber auf die schnelle die api funktionen nicht die man dazu nutzen kannvieleicht einfach mal schaun wie ps das macht ?!

Ich bin im Gegenteil der Meinung, man sollte die Shell Sachen benutzen.
Immerhin haben die ein einigermassen stabiles "API" (sprich Kommandoparameter). Wenn du das auf tieferem Level lösen willst, wirst du um ein anpassen deines Codes für ändernde/verschiedene Linux-versionen kaum herumkommen.
-
- Beiträge: 958
- Registriert: Mo 11. Sep 2006, 22:56
Sicherlich kann man sich durch /proc parsen
http://www.pronix.de/pronix-113.html" onclick="window.open(this.href);return false;
aber da ist ps in diesem Fall um einiges komfortabler.
http://www.pronix.de/pronix-113.html" onclick="window.open(this.href);return false;
aber da ist ps in diesem Fall um einiges komfortabler.
-
- Beiträge: 14
- Registriert: Sa 26. Jan 2008, 17:36
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Solange GNOME oder XFCE läuft solltest du das anhand der Umgebungsvariablen "gdmsession" erfahren können.
Da könnte man nun ganz dreckig nach dem Ausschlussverfahren aggieren.
Ist "gdmsession=GNOME" läuft GNOME, ist "gdmsession=xfce" läuft XFCE und wenn nichts von beidem zutrifft läuft KDE (oder was anderes).
MfG
Wolf
Da könnte man nun ganz dreckig nach dem Ausschlussverfahren aggieren.
Ist "gdmsession=GNOME" läuft GNOME, ist "gdmsession=xfce" läuft XFCE und wenn nichts von beidem zutrifft läuft KDE (oder was anderes).
MfG
Wolf