https://qb64phoenix.com/qb64wiki/index.p...ost_Window
Code: (Select All)
'public domain
CONST SWP_NOSIZE = &H0001 'ignores cx and cy size parameters
CONST SWP_NOMOVE = &H0002 'ignores x and y position parameters
CONST SWP_NOZORDER = &H0004 'keeps z order and ignores hWndInsertAfter parameter
CONST SWP_NOREDRAW = &H0008 'does not redraw window changes
CONST SWP_NOACTIVATE = &H0010 'does not activate window
CONST SWP_FRAMECHANGED = &H0020
CONST SWP_SHOWWINDOW = &H0040
CONST SWP_HIDEWINDOW = &H0080
CONST SWP_NOCOPYBITS = &H0100
CONST SWP_NOOWNERZORDER = &H0200
CONST SWP_NOSENDCHANGING = &H0400
CONST SWP_DRAWFRAME = SWP_FRAMECHANGED
CONST SWP_NOREPOSITION = SWP_NOOWNERZORDER
CONST SWP_DEFERERASE = &H2000
CONST SWP_ASYNCWINDOWPOS = &H4000
CONST HWND_TOP = 0 'window at top of z order no focus
CONST HWND_BOTTOM = 1 'window at bottom of z order no focus
CONST HWND_TOPMOST = -1 'window above all others no focus unless active
CONST HWND_NOTOPMOST = -2 'window below active no focus
DECLARE DYNAMIC LIBRARY "user32"
FUNCTION FindWindowA%& (BYVAL lpClassName%&, BYVAL lpWindowName%&)
FUNCTION SetWindowPos& (BYVAL hWnd%&, BYVAL hWndInsertAfter%&, BYVAL X&, BYVAL Y&, BYVAL cx&, BYVAL cy&, BYVAL uFlags~&)
FUNCTION GetForegroundWindow%&
END DECLARE
DECLARE DYNAMIC LIBRARY "kernel32"
FUNCTION GetLastError~& ()
END DECLARE
DIM t AS STRING
DIM hWnd AS _OFFSET
RANDOMIZE TIMER
t = HEX$(RND * &H1000000) 'random title for FindWindowA
_TITLE t
t = t + CHR$(0)
hWnd = _WINDOWHANDLE 'FindWindowA(0, _OFFSET(t))
_TITLE "This Window will always be on Top" 'any title
_DELAY 4 'delay allows user to click focus on other windows
'set as topmost window and move without sizing or activation
IF 0 = SetWindowPos(hWnd, HWND_TOPMOST, 200, 200, 0, 0, SWP_NOSIZE OR SWP_NOACTIVATE) THEN
PRINT "SetWindowPos failed. 0x" + LCASE$(HEX$(GetLastError))
END IF
x%& = GetForegroundWindow%& 'find currently focused process handle
PRINT "Program handle:"; hWnd; "Focus handle:"; x%&
IF hWnd <> x%& THEN _SCREENCLICK 240, 240 'add 40 to x and y to focus on positioned window
END