Hi Leute,
Ich arbeite derzeit an einem CLI der auf allen geläufigen Betriebssystemen (Windows,Linux,Unix,Mac OS (X),usw.) funktionieren soll.
Manche Befehle jedoch kann ich nur durch os.system ausführen (z.B. herunterfahren).Die entsprechenden Befehle unterscheiden sich
jedoch je nach Betriebssystem.Da ich aber nur Windows benütze kenne ich die entsprechenden Befehle nicht.
Daher wäre es nett wenn ihr hier mir auf meine Betriebssystemspezifische-Befehls-Fragen antworten könntet.
Hier wäre schon mal meine erste Frage:
Wie lautet der Befehl zum änder des Fenstertitels in den jeweiligen Betriebssystemen?
Windows = title NeuerName
postet bitte den Befehl + Betriebssystem...
Betriebssystemspezifische Kommandos
Wenn Du Dein Projekt nicht auf anderen Plattformen testen kannst, wäre es wohl am besten, Du beschränkst Dich erstmal auf das, was Du hast (Windows).
Unter Linux funktioniert das nämlich ganz anders. Der Fenstertitel wird durch den Windowmanager festgelegt, und davon gibt es unter Linux mehrere (KDE, Gnome, WindowMaker u.a.).
Ein Programm, daß das für einige Windowmanager relativ unabhängig von der Konsole aus machen könnte, wäre dies:
http://tomas.styblo.name/wmctrl/
Jedoch dürften das nur die wenigsten installiert haben. Ist also nicht so einfach. Dafür gibt's mehr Vielfalt als nur den einen von Microsoft vorgegebenen Desktop.
Gruß
Unter Linux funktioniert das nämlich ganz anders. Der Fenstertitel wird durch den Windowmanager festgelegt, und davon gibt es unter Linux mehrere (KDE, Gnome, WindowMaker u.a.).
Ein Programm, daß das für einige Windowmanager relativ unabhängig von der Konsole aus machen könnte, wäre dies:
http://tomas.styblo.name/wmctrl/
Jedoch dürften das nur die wenigsten installiert haben. Ist also nicht so einfach. Dafür gibt's mehr Vielfalt als nur den einen von Microsoft vorgegebenen Desktop.
Gruß
@graphicsH: Lies Dokumentation und teste das Programm selbst auf den entsprechenden Betriebssystemen. Mit Frage-Antwort-Spielchen wirst Du nicht weit kommen.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Und nicht jedes Problem hat eine 1:1 Umsetzung in einem anderen Betriebssystem.
Zudem: ``os.system`` durch ``subprocess`` ersetzen bitte.
Zudem: ``os.system`` durch ``subprocess`` ersetzen bitte.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
@lunar und problembär:
Auf Windows funktioniert es bereits problemlos.Daher möchte ich es jetzt noch auf andere OS anpassen.
@problembär:
Auf Windows funktioniert es bereits problemlos.Daher möchte ich es jetzt noch auf andere OS anpassen.
@problembär:
Gibt es da einen Windowmanager vorinstallierten den fast jeder hat?Wenn ja, wie lautet der Befehl zum ändern des Fenstertitles?Der Fenstertitel wird durch den Windowmanager festgelegt
-
@graphicsH: Dann installiere Dir die entsprechenden Systeme, lese deren Dokumentation und passe das Programm darauf an.
@lunar:
kein Speicherplatz etc.
@all:
Aber könnte mir nicht einfach ein benützer eines anderen Betriebssystemes einen entsprechenden Befehl sagen,anstatt nun darüber zu diskutieren wie ich noch komplizierter an die informationen kommen könnte?
kein Speicherplatz etc.
@all:
Aber könnte mir nicht einfach ein benützer eines anderen Betriebssystemes einen entsprechenden Befehl sagen,anstatt nun darüber zu diskutieren wie ich noch komplizierter an die informationen kommen könnte?
-
@graphicsH: Es geht nicht darum dass Du komplizierter an die Information kommst, sondern dass Du überprüfen kannst dass Dein Programm überhaupt korrekt läuft. Funktionalität in ein Programm einzubauen, die man nicht ausführen und damit auch nicht testen kann, ist ziemlich sinnfrei.
@BlackJack:
Daher bitte einfach mal die Befehle schreiben...
und wir sind wieder beim:@graphicsH: Es geht nicht darum dass Du komplizierter an die Information kommst, sondern dass Du überprüfen kannst dass Dein Programm überhaupt korrekt läuft. Funktionalität in ein Programm einzubauen, die man nicht ausführen und damit auch nicht testen kann, ist ziemlich sinnfrei.
Und testen kann ich,wenn ich fertig bin,bei Freunden,weil da haben manche Mac oder Linux...darüber zu diskutieren
Daher bitte einfach mal die Befehle schreiben...
-
Haha, das wird nix …
Neustart: `reboot` `init 6`
Ausschalten: `halt` `init 0`
Mit root-Rechten (je nach System)
Neustart: `reboot` `init 6`
Ausschalten: `halt` `init 0`
Mit root-Rechten (je nach System)
the more they change the more they stay the same
Archlinux, ich weiß nicht in wie weit das von Distribution zu Distribution unterscheidet …
the more they change the more they stay the same
Deine Freunde werden sich bedanken, wenn Du nach dem 5. Fehlversuch immernoch angerannt kommst...graphicsH hat geschrieben:Und testen kann ich,wenn ich fertig bin,bei Freunden,weil da haben manche Mac oder Linux...
Daher bitte einfach mal die Befehle schreiben...
Wenn Du systemspezifisch entwickelst, dann schaffe auch die Voraussetzungen, dass ordentlich testen zu können.
Zum "Befehl" unter Unixoiden für Fenstertitel:
Hilfts Dir was, wenn ich Dir sage, dass es eine Escape-Sequenz gibt, die von xterm eingeführt wurde und von vielen Terminalemulatoren unter X unterstützt wird? Und hier liegt nämlich die Crux - es können nicht alle Emulatoren und Du bist wieder aufs Testen angewiesen. Wir drehen uns im Kreis.
Neustart und Herunterfahren über init, shutdown und Konsorten zu machen, ist unter einer komplexen Desktop-Umgebung (KDE, Gnome,...) eher unerwünscht, da den Diensten der Stecker gezogen wird. Die Umgebungen bringen Schnittstellen mit (DBUS), die den geordneten Rückzug über logout bis hin zum Neustart (falls erlaubt) triggern können. Da sind so viele Wenn und Aber, dass das ohne Testen schief gehen muss.
Zuletzt geändert von jerch am Montag 14. November 2011, 19:11, insgesamt 1-mal geändert.
Neustart: RANDOMIZE USR 0
System: Sinclair ZX Spectrum.
Inspiration von hier:
http://my.opera.com/raphman/blog/show.dml/302528
http://stackoverflow.com/questions/3983 ... title-in-x
Für Gnome gibt es noch eine Lib mit Python-Bindings namen wnck, mit der man sowas auch machen können soll (KDE (genauer dort KWin) einerseits und Gnome andererseits sind wohl die größten Windowmanager und wahrscheinlich auch am weitesten verbreitet. Obwohl das unter Linux nicht eine so große Rolle spielt: Man kann nutzen, was einem gefällt, es geht nicht um möglichst großen Umsatz).
Das hier wäre für Dich vielleicht auch ganz hilfreich:
Linux ist nicht Windows
Gruß
System: Sinclair ZX Spectrum.
Hab' mich mal ein bißchen umgesehen. Dieses könnte funktionieren - manchmal:graphicsH hat geschrieben:@problembär:Gibt es da einen Windowmanager vorinstallierten den fast jeder hat?Wenn ja, wie lautet der Befehl zum ändern des Fenstertitles?Der Fenstertitel wird durch den Windowmanager festgelegt
Code: Alles auswählen
#!/usr/bin/env python
# coding: iso-8859-1
import subprocess
def get_active_window_id():
pipehandler = subprocess.Popen(('xprop', '-root'),
stdout = subprocess.PIPE)
xprops = pipehandler.communicate()
xprops = xprops[0]
xprops = xprops.split("\n")
for line in xprops:
if '_NET_ACTIVE_WINDOW(WINDOW):' in line:
id = line.split(" ")[4]
return id
return "Error"
def set_active_window_title(title):
subprocess.call(("wmctrl", "-ri", get_active_window_id(), "-N", title))
set_active_window_title("Hallo")
http://my.opera.com/raphman/blog/show.dml/302528
http://stackoverflow.com/questions/3983 ... title-in-x
Für Gnome gibt es noch eine Lib mit Python-Bindings namen wnck, mit der man sowas auch machen können soll (KDE (genauer dort KWin) einerseits und Gnome andererseits sind wohl die größten Windowmanager und wahrscheinlich auch am weitesten verbreitet. Obwohl das unter Linux nicht eine so große Rolle spielt: Man kann nutzen, was einem gefällt, es geht nicht um möglichst großen Umsatz).
Das hier wäre für Dich vielleicht auch ganz hilfreich:
Linux ist nicht Windows
Gruß
@problembär
thx für den code
Hab ich bereits gemerkt.problembär hat geschrieben:Neustart: RANDOMIZE USR 0
Linux ist nicht Windows
thx für den code
-
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Etwa so lustig wie dein Thread.graphicsH hat geschrieben:heute ganz ein lustiger oda was?Neustart: SYS64738, System: C64
Neustart: systemctl start reboot.target, System: systemd.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice