Entwickler-Ecke
Windows API - Programm mit WM_MOVE verschieben
jaenschi - Mo 07.03.05 17:42
Titel: Programm mit WM_MOVE verschieben
Hallo,
ich möchte ein externes Programm verschieben.Dazu habe ich atm diesen Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.Button1Click(Sender: TObject); var win:HWND; begin win:=FindWindow(nil,'Test'); SetForegroundWindow(win); PostMessage(win,WM_MOVE,0,0); end; |
Wenn ich jetzt aber auf den Button klick, wird da gar nix verschoben. Das Fenster hat er ganz sicher gefunden!
wdbee - Mo 07.03.05 19:30
Wo steht denn da, um viele Pixel das Fenster wohin verschoben werden soll :?:
jaenschi - Mo 07.03.05 19:38
Wie kann ich das denn verschieben? :oops:
Ich würde das Fenster gerne in die Ecke oben links verschieben.
Geht das?
wdbee - Mo 07.03.05 19:54
Geh mit der Maus auf WM_MOVE und dann drück F1 :!:
jaenschi - Mo 07.03.05 20:01
Also meine Delphi-Hilfe sagt dazu nur "Topic not available" und das, was man bei msdn findet
konnte ich auch nicht so ganz für mein Problem nutzen :(
@wdbee: Könntest du mir vllt. das anhand meines Codes aus dem ersten Posting kurz erklären?
Motzi - Mo 07.03.05 20:02
Warum verwendest du nicht gleich MoveWindow() sonder schickst eine WM_MOVE Message..? :roll:
jaenschi - Mo 07.03.05 20:09
Ich wusst nicht, dass es MoveWindow gibt :oops:
Funktioniert aber super, THX :D
wdbee - Mo 07.03.05 20:54
Also nur zur Vollständigkeit:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| SetWindowPos( win, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW or SWP_NOSIZE ); |
Damit hast du zusätzliche Möglichkeiten, z. B. wenn du die Größe des Fensters nicht ändern willst, nur die Position. Der Rest in der Delphihilfe zum Windows SDK
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!