![]() |
Konsolenfenster gezielt positionieren möglich?
Hallo,
ich rufe per ShellExecute einen Befehl auf und lasse mein Programm solange warten, bis der Befehl abgearbeitet wurde, etwa: dir *.txt /s Existiert eine Möglichkeit, das Konsolenfenster an einer bestimmten Stelle zu positionieren? Es wird ja normalerweise irgendwie zentriert dargestellt, ich habe mein Mainform aber extra für die Ausführung des Konsolenbefehls oben zentriert angeordnet, weil ich direkt darunter das Konsolenfenster positionieren wollte. Geht das überhaupt? |
AW: Konsolenfenster gezielt positionieren möglich?
Klar geht das, mit MoveWindow:
Erstmal suchst du dir das Handle vom Konsolen-Fenster, und dann MoveWindow(HConsoleWindow,x,y,w,h,true) ; |
AW: Konsolenfenster gezielt positionieren möglich?
Mit MoveWindow würde es gehen, das ändert aber nur die Fensterposition nach der Ausführung.
Wenn ich etwa mit
Delphi-Quellcode:
ShellExecuteAndWait(Handle, 'open', PAnsiChar('dir'), PAnsiChar('*.txt /s'), NIL, SW_SHOW, True);
den Prozess starte, wird er zuerst mit der normalen Fensterposition abgearbeitet. MoveWindow danach greift ja ins Leere, da das Fenster zu diesem Zeitpunkt wieder geschlossen ist. |
AW: Konsolenfenster gezielt positionieren möglich?
Dann führ es doch ohne Wait aus und bastel dir nach dem Aufruf dein eigenes Wait mit zwei schleifen.
1) Warten, bis das Fensterhandle da ist 2) Movewindow 3) Warten, bis das Fensterhandle weg ist |
AW: Konsolenfenster gezielt positionieren möglich?
Hallo,
eine Alternative wäre die Verwendung von ShellExecute mit dem Flag STARTF_USEPOSITION und den Positionsangaben im StartupInfo. Ob das auch mit der cmd.exe funktioniert weiß ich aber nicht. Viele Grüße MAC |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz