Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
SL
Anmeldungsdatum: 06.12.2009 Beiträge: 43
|
Verfasst am: 06.01.2010, 12:02 Titel: Konsole – Titelleiste ausblenden? |
|
|
Wie kann ich in einer Windows-Konsolenanwendung (im Fenstermodus) die Titelleiste ausblenden? Falls das nicht geht, wie kann ich die Titelleisten-Schaltfläche ausblenden?
In Vollbildmodus verschwindet die Titelleiste sowieso, doch mir geht es hier um den (wesentlich häufiger angewendeten) Fenstermodus.
Am liebsten wäre mir eine FB-Routine namens „Titelleiste_Ausblenden“ Gibt es so was irgendwo bereits? |
|
Nach oben |
|
 |
Luke

Anmeldungsdatum: 14.01.2009 Beiträge: 92 Wohnort: Ostfriesland !
|
Verfasst am: 06.01.2010, 13:08 Titel: |
|
|
screen 16,32,0,8
Fenster ohne Rahmen.
Guck mal in der Befehlsreferenz unter screen(Anweisung)
War doch das was du meinst, oder?
EDIT: Oh Tschuldigung! Das ist für Grafikfenster nicht für Konsole!  _________________ ICH war mal schizophren, aber jetzt sind WIR okay. |
|
Nach oben |
|
 |
Stueber
Anmeldungsdatum: 07.07.2008 Beiträge: 202
|
Verfasst am: 06.01.2010, 16:07 Titel: |
|
|
Die Konsole kann das nicht, soweit ich weis, aber es gibt einen Weg der leider viel schwerer ist:
Ein Winapi Fenster ohne WS_BORDER und WS_CAPTION und ansonsten baut man die Konsole nach.
Darstellung, Ausgabe, Eingabe,...
Es ist fast nicht möglich und viel arbeit. |
|
Nach oben |
|
 |
k4rsten

Anmeldungsdatum: 01.01.2010 Beiträge: 18 Wohnort: Dortmund
|
Verfasst am: 06.01.2010, 16:10 Titel: |
|
|
Zitat: | Es ist fast nicht möglich und viel arbeit |
Also wenn es wirklich über die WinAPI geht ist es nicht viel Arbeit. Allerdings auch nicht plattformübergreifend. _________________ you cannot kill what you did not create |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 06.01.2010, 17:31 Titel: |
|
|
Das Konsolen"fenster" ist auch nicht plattformübergreifend. Den Code kann man ja mit Präprozessor-Anweisungen nur unter Win32 einbinden lassen. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Luke

Anmeldungsdatum: 14.01.2009 Beiträge: 92 Wohnort: Ostfriesland !
|
Verfasst am: 06.01.2010, 17:33 Titel: |
|
|
Ich würde vorschlagen, du machst dir einfach ein Grafikfenster, das kann nämlich mindestens das selbe, und noch mehr  _________________ ICH war mal schizophren, aber jetzt sind WIR okay. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 06.01.2010, 17:43 Titel: |
|
|
ein grafikfenster kann aber genau eines nicht: auf der konsole laufen. während das für den modernen windows-jünger natürlich kein problem ist, ist es beispielsweise ein problem für software, die generel auf konsolensystemen oder z.B. webservern laufen soll. Wenn es dir wirklich nur um reinen Text geht, ist das wesentlich praktischer, auch weil man den Text direkt aus der Konsole kopieren kann (und auch einfügen). _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
SL
Anmeldungsdatum: 06.12.2009 Beiträge: 43
|
Verfasst am: 06.01.2010, 18:09 Titel: |
|
|
Ich dachte mir, sämtliche Einstellungen der Windows-Konsole sind in der Windows-Registry festgehalten. Im Schlüssel HKEY_CURRENT_USER / CONSOLE sind zunächst mal alle Standart-Einstellungen abgelegt. Jedes Anwenderprogramm, welches die Konsole startet, legt (anscheinend) einen Unterordner an, indem abweichende Einstellungen enthalten sind.
Ich selber kenne mich mit der Registry absolut nicht aus. Doch vielleicht ist da irgendwo ein Eintrag, welcher die Titelleiste und die Titelleistenschaltfläche regelt. Blöd wäre natürlich, wenn die Titelleiste im Code der Konsole direkt gesteuert wird und Kleinweich keine Eingriffsmöglichkeit vorsah oder wollte. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 06.01.2010, 18:21 Titel: |
|
|
Es gibt meines Wissens nach keine Einstellung (auch in der Registry nicht), die den Fensterrahmen der Konsole festlegt. Du könntest eben versuchen, sie per WinAPI auszublenden, aber so einfach ist das sicher nicht. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
k4rsten

Anmeldungsdatum: 01.01.2010 Beiträge: 18 Wohnort: Dortmund
|
Verfasst am: 06.01.2010, 21:07 Titel: |
|
|
Zitat: | ist es beispielsweise ein problem für software, die generel auf konsolensystemen oder z.B. webservern laufen soll. |
Aber dort hat die Konsole auch keinen Fensterrahmen  _________________ you cannot kill what you did not create |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 06.01.2010, 21:20 Titel: |
|
|
das stimmt allerdings auch wieder. aber hier ging's ja um gfxscreen vs konsole.... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 06.01.2010, 21:44 Titel: |
|
|
Unter Windows ist das mit der Konsole so nicht möglich.
Warum?
Weil das Konsolenfenster ab NT vom Consolesubsystem des Kernels kommt. Wenn man so will ist die Konsole kein normales Fenster, sondern etwas ganz eigenes. Die meisten Funktionen lassen sich auf ihr nicht anwenden. (Deswegen gibt es auch extra Funktionen um den Konsolentitel zu setzen)
Was eventuell möglich wäre ist folgendes:
Man erstellt ein rahmenloses Fenster, besorgt sich den Fensterhandle der Konsole (geht) und setzt per SetWindowLong() fest, dass die Konsole ein Childfenster des eigenen Fensters ist (spätestens an diesem Punkt dürfte es nicht mehr funktionieren - s.o. - bin mir aber nicht sicher). Per MoveWindow() platziert man die Konsole so im eigenen Fenster, dass Rahmen respektive Titelleiste außerhalb des Fensters liegen und daher nicht mehr gezeichnet werden.
Funktioniert selbstverständlich (höchstens) unter Windows. Falls das überhaupt mit der Konsole zu machen ist (Funktioniert SetWindowLong() auf einem Konsolenfensterhandle).
Appendix zu oben:
Deswegen ist es auch ohne weitere Executables NICHT möglich mehrere Konsolen pro Programm zu öffnen!
/EDIT:
Zitat: | Anmeldungsdatum: 25.04.2008
Beiträge: 1101 |
11012 = 1310
Oh oh Freitag der 13., er wird uns alle packen! |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 07.01.2010, 15:54 Titel: |
|
|
Btw. muss man sich noch das Sysmenü vom Konsolenfenster borgen (inkl. IDs) und entsprechend in das eigene Sysmenu einbetten. (Diff. der Menüs).
@OneCypher:
Kein Scrollen, Kein C&P, ...
@Thread:
Der Aufwand die Konsole einzubetten dürfte sich eigentlich sehr in Grenzen halten. Allerdings sind weitergehende Kenntnisse der Win32 API erforderlich, ansonsten kann man es eigentlich gleich vergessen. |
|
Nach oben |
|
 |
k4rsten

Anmeldungsdatum: 01.01.2010 Beiträge: 18 Wohnort: Dortmund
|
Verfasst am: 07.01.2010, 16:42 Titel: |
|
|
Zitat: |
11012 = 1310
Oh oh Freitag der 13., er wird uns alle packen! |
Na dann such dir mal lieber eine Frau, die du am 10.10.2010 heiraten kannst. 10.10.10 = 101010 = 42  _________________ you cannot kill what you did not create |
|
Nach oben |
|
 |
|