Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Konsolenfenster gezielt positionieren möglich? (https://www.delphipraxis.net/152503-konsolenfenster-gezielt-positionieren-moeglich.html)

devidespe 24. Jun 2010 17:01

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?

blackfin 24. Jun 2010 17:07

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) ;

devidespe 25. Jun 2010 13:35

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.

blackfin 25. Jun 2010 15:47

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

MAC. 25. Jun 2010 16:25

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 05:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz