Bestimmtes (fremdes) Fenster immer bei Position 0

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Bestimmtes (fremdes) Fenster immer bei Position 0

Beitrag von Delle »

Hallo,

weiß jemand wie man von einem bestimmten (fremden) Programm immer dessen Position ständig kontrolliert und bei einer ev. Bewegung wieder an die Ursprungsposition (0,0) zurücksetzt?
PB 6.21 | Win 11
Benutzeravatar
Bax
Beiträge: 20
Registriert: 16.08.2005 21:45
Wohnort: Erlensee

Beitrag von Bax »

Hi Delle,

Position abfragen:

Code: Alles auswählen

position.RECT
GetWindowRect_(hWnd, position)
Position setzen:

Code: Alles auswählen

MoveWindow_(hWnd, x, y, #IGNORE, #IGNORE, #True)
Um das Fenster immer zurückzusetzen gibt es mehrere Möglichkeiten. Hier wird die Position (von "Unbenannt - Paint") nur verändert, wenn die Maustaste nach dem Verschieben losgelassen wird. Eleganter ist das wahrscheinlich mit 'Message Functions'.

Code: Alles auswählen

win_title$ = "Unbenannt - Paint"
hWnd.l = FindWindow_(0, win_title$)
position.RECT

If hWnd
  Repeat
    GetWindowRect_(hWnd, position)
    If ((position\left <> 0) Or (position\top <> 0)) And (GetAsyncKeyState_(#VK_LBUTTON) = 0)
      MoveWindow_(hWnd, 0, 0, #IGNORE, #IGNORE, #True)
    EndIf

    Delay(1)
  Until (GetAsyncKeyState_(#VK_ESCAPE)) Or (IsWindow_(hWnd) = 0)
EndIf
Antworten