Seite 1 von 2
In der Dosfensterleiste oben den Programnamen
Verfasst: Freitag 5. November 2010, 15:57
von funkheld
Wenn ich ein Programm starte "python.exe trallala.py" möchte ich den Programnamen in der Dosleiste vom Dosfenster angezeigt haben.
Wie geht das mit Python?
Grus
Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Freitag 5. November 2010, 16:16
von jerch
Code: Alles auswählen
>>> from ctypes import windll, c_wchar_p
>>> windll.kernel32.SetConsoleTitleW(c_wchar_p(u'My Üläutß-Titel'))
Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Freitag 5. November 2010, 16:23
von Xynon1
jerch hat geschrieben:windll.kernel32.SetConsoleTitleW(c_wchar_p(u'My Üläutß-Titel'))
Sieht gut aus
Edit: Das da oben sieht zwar schöner aus, aber
geht für windows auch
@funkheld
Ich wusste gar nicht das es sowas wie Dosfenster, Dosleiste gibt ?
Wenn du so eine Suchfunktion wie
http://www.google.com nutzt, musst du dich nicht wundern warum du dort nichst findest

Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Freitag 5. November 2010, 16:37
von Leonidas
Och, nicht schon wieder ``os.system``

Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Freitag 5. November 2010, 16:58
von Xynon1
Würde auch die andere Lösung bevorzugen, aber da es hier nur um ein "Dosfenster" unter Windows ging, dachte ich das würde ihm reichen

Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Freitag 5. November 2010, 17:14
von Leonidas
Naja, erstens sollte man schon seit langem ``subprocess`` bevorzugen und zweitens ist die Lösung von jerch wesentlich eleganter. Zudem ``ctypes`` ja auch teil der Stdlib ist.
Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Freitag 5. November 2010, 17:23
von Xynon1
Leonidas hat geschrieben:Lösung von jerch wesentlich eleganter. Zudem ``ctypes`` ja auch teil der Stdlib ist.
Habe ich auch nicht abgestritten,
gehen eigentlich alle befehle unter windows mit subprocess, kann es leider gerade nicht testen.
Wenn ja, wird os.system ein für alle mal aus meinem Wortschatz gestrichen.
Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Freitag 5. November 2010, 18:14
von funkheld
Wenn du so eine Suchfunktion wie
http://www.google.com nutzt, musst du dich nicht wundern warum du dort nichst findest
Na dann hast du die falsche Suchmaschine.
Meine listet dann alles auf, mit und ohne Bindestrich.
Es geht um das allgemeine Dos nicht nur um MsDos.
Jetzt wird der Titel in der Leiste angezeigt.
Jup, danke.
Gruss
Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Freitag 5. November 2010, 19:00
von Xynon1
Ja DOS da lege ich dir gerne den Artikel ans Herz
http://de.wikipedia.org/wiki/Disk_Operating_System
In der Definition steht eindeutig:
...deren Hauptaufgabe die Verwaltung von magnetischen Speichermedien wie Disketten und Festplatten ist...
Was meiner Meinung nach unter einem Windows os eindeutig Windows macht und nicht die Konsole, die man in Windows aufrufen kann. Diese kann man höchstens als DOS-Konsole betiteln aber nicht als "Dosfenster".
Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Freitag 5. November 2010, 22:40
von Leonidas
Meint ihr nicht dass das jetzt Korinthenkackerei ist? Ja, es ist bekannt dass die Eingabeaufforderung kein DOS ist, was sogar den Übersetzern aufgefallen ist da der Vorsatz "MS-DOS" bei den NT-Varianten der Microsoft-Betriebssysteme weggefallen ist.
Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Freitag 5. November 2010, 22:59
von Xynon1
Na selbstverständlich

Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Samstag 6. November 2010, 01:23
von jerch
@Xynon1:
'title name' ist ein Shellkommando. cmd.exe ruft dann seinerseits SetConsoleTitle() auf, diesen Zwischenschritt über die Shell kann man sich ersparen.
Dein Weg funktioniert auch mit subprocess, allerdings muss hierfür das Shellflag gesetzt sein.
Code: Alles auswählen
import subprocess
subprocess.call('title whatever', shell=True)
Für Umlaute musst Du den String entsprechend kodieren.
Für die Änderung der Titelzeile einen Subprozess zubemühen, ist natürlich fragwürdig. Zumal die Prozesserzeugung unter Windows relativ teuer ist.
Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Samstag 6. November 2010, 01:40
von Xynon1
Ehrlich gesagt bin ich eher weniger daran interessiert Windowskonsolen Titel umzubennen, aber Danke.
Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Samstag 6. November 2010, 02:22
von jerch
Jetzt kennst Du wenigstens die Nachteile Deiner Lösung - man kann ja nie wissen

Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Samstag 6. November 2010, 02:36
von Xynon1
So habe ich es auch aufgefasst
Nur ich nehm Python jetzt nicht gerade aus dem Grund um etwas
nur für Windows und auch
nur für diese eine Konsole zubauen.
Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Samstag 6. November 2010, 09:30
von funkheld
DOS-Konsole....
Du kennst dich da wohl nicht so aus, weil du wahrscheinlich nur mit Linux rumdaddelst
Wenn ich auf dem Desktop vom Windows etwas öffnet, ist das keine Kondole sondern immer ein Fenster oder weiteres Window, was da drin passiert ist vollkommen wurscht...
Nach dem Motto: Ich öffne mal die Exel-Konsole...

... öffne mal unter Linux die QT-Konsole...
Wenn ich es im Dos-Modus öffne, geht glaube ich ab Xp nicht mehr, da hat man den Begriff Konsole benutzt, ist wohl damals den schlauen Leuten nichts anderes eingefallen
Gruss
Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Samstag 6. November 2010, 09:59
von BlackJack
@funkheld: Wenn Du unter Windows die (DOS-)Konsole a.k.a. DOS-Eingabeaufforderung öffnest, dann ist das sehr wohl eine Konsole. Du sagst ja selbst, dass sogar in der Windows-Terminologie von einer Konsole gesprochen wird.
Der Unterschied zwischen einer (DOS-)Konsole unter Windows und einer Konsole (a.k.a. Terminal-Emulator) unter Linux ist auch nicht besonders gross. Beide dienen dazu innerhalb der grafischen Oberfläche, Programmen die Möglichkeit der Text-Ein- und Ausgabe zu bieten. Das kann eine Shell sein wie ``cmd.exe`` oder ``command.com`` (früher) unter Windows oder eine der vielen Shells die es unter Linux gibt. Es kann aber auch ein Programm sein, dass ohne den Umweg über eine Shell seine Ein-/Ausgaben über das Textwidget abwickelt. Das Prinzip ist das gleiche.
Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Samstag 6. November 2010, 23:54
von funkheld
Windows-Terminologie von einer Konsole gesprochen wird.
Eben , das ist der S.c.h.e.i.s.s
Neee....,neee....,nee....
Wenn dann wird schon beim Systemstart die F8-taste gedrückt, das der DosModus kommt und Window gar nicht mehr ans Ruder kommt, nämlich erst wieder duch einen Neustart.....
Gruss
Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Samstag 6. November 2010, 23:56
von funkheld
...Ein-/Ausgaben über das Textwidget abwickelt. Das Prinzip ist das gleiche.
Nein..., ist es nicht. Weil die Dosbefehle garnicht alle funktionieren sondern nur die Windowsbefehle für das Widget.
Gruss
Re: In der Dosfensterleiste oben den Programnamen
Verfasst: Sonntag 7. November 2010, 00:20
von Hyperion
funkheld hat geschrieben:
...Ein-/Ausgaben über das Textwidget abwickelt. Das Prinzip ist das gleiche.
Nein..., ist es nicht. Weil die Dosbefehle garnicht alle funktionieren sondern nur die Windowsbefehle für das Widget.
Das
Prinzip ist dennoch das gleiche! Also sag doch nicht "nein"...
