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
In der Dosfensterleiste oben den Programnamen
Code: Alles auswählen
>>> from ctypes import windll, c_wchar_p
>>> windll.kernel32.SetConsoleTitleW(c_wchar_p(u'My Üläutß-Titel'))
Sieht gut ausjerch hat geschrieben:windll.kernel32.SetConsoleTitleW(c_wchar_p(u'My Üläutß-Titel'))

Edit: Das da oben sieht zwar schöner aus, aber
Code: Alles auswählen
import os
os.system("title foo")
@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

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 

-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Habe ich auch nicht abgestritten,Leonidas hat geschrieben:Lösung von jerch wesentlich eleganter. Zudem ``ctypes`` ja auch teil der Stdlib ist.
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.
Na dann hast du die falsche Suchmaschine.Wenn du so eine Suchfunktion wie http://www.google.com nutzt, musst du dich nicht wundern warum du dort nichst findest
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
Ja DOS da lege ich dir gerne den Artikel ans Herz http://de.wikipedia.org/wiki/Disk_Operating_System
In der Definition steht eindeutig:
In der Definition steht eindeutig:
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"....deren Hauptaufgabe die Verwaltung von magnetischen Speichermedien wie Disketten und Festplatten ist...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
@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.
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.
'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 die Änderung der Titelzeile einen Subprozess zubemühen, ist natürlich fragwürdig. Zumal die Prozesserzeugung unter Windows relativ teuer ist.
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.

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.
Du kennst dich da wohl nicht so aus, weil du wahrscheinlich nur mit Linux rumdaddelstDOS-Konsole....
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...


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
@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.
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.
Eben , das ist der S.c.h.e.i.s.sWindows-Terminologie von einer Konsole gesprochen wird.
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
Zuletzt geändert von funkheld am Sonntag 7. November 2010, 00:00, insgesamt 1-mal geändert.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Das Prinzip ist dennoch das gleiche! Also sag doch nicht "nein"...funkheld hat geschrieben:Nein..., ist es nicht. Weil die Dosbefehle garnicht alle funktionieren sondern nur die Windowsbefehle für das Widget....Ein-/Ausgaben über das Textwidget abwickelt. Das Prinzip ist das gleiche.![]()

encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert