Thanks Martin..
I did it earlier than you have posted it... but thanks
my script:
#include <GUIConstants.au3>
$Gui = GUICreate("pokus", 100)
GUISetState()
DockIt($Gui, "right")
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
UnDockIt($Gui)
Func UnDockIt($gui)
$SPI_SETWORKAREA = 47
$SPI_GETWORKAREA = 48
$DINewRect = DllStructCreate("long;long;long;long")
DllStructSetData($DINewRect, 1,0)
DllStructSetData($DINewRect, 2,0)
DllStructSetData($DINewRect, 3,1024)
DllStructSetData($DINewRect, 4,730)
DllCall("user32.dll", "uint", "SystemParametersInfoA", "uint", $SPI_SETWORKAREA, "uint", 0, "ptr", DllStructGetPtr($DINewRect), "uint", 0)
$var = WinList()
For $i = 1 To $var[0][0]
If $var[$i][0] <> "" And BitAND(WinGetState($var[$i][1]), 2 + 32 + 8) Then
WinMove($var[$i][1], "", DllStructGetData($DINewRect, 1), DllStructGetData($DINewRect, 2), DllStructGetData($DINewRect, 3), DllStructGetData($DINewRect, 4))
EndIf
Next
EndFunc ;==>UnDockIt
Func DockIt($DIguiHwnd, $DIpos)
$SPI_SETWORKAREA = 47
$SPI_GETWORKAREA = 48
$DIOrigRect = DllStructCreate("long left;long right;long top;long bottom")
DllCall("user32.dll", "uint", "SystemParametersInfoA", "uint", $SPI_GETWORKAREA, "uint", 0, "ptr", DllStructGetPtr($DIOrigRect), "uint", 0)
If $DIpos = "right" Then
$DIGuiPos = WinGetPos($DIguiHwnd)
$DINewRect = DllStructCreate("long;long;long;long")
DllStructSetData($DINewRect, 1, DllStructGetData($DIOrigRect, 1))
DllStructSetData($DINewRect, 2, DllStructGetData($DIOrigRect, 2))
DllStructSetData($DINewRect, 3, DllStructGetData($DIOrigRect, 3) - $DIGuiPos[2])
DllStructSetData($DINewRect, 4, DllStructGetData($DIOrigRect, 4))
ElseIf $DIpos = "left" Then
$DIGuiPos = WinGetPos($DIguiHwnd)
$DINewRect = DllStructCreate("long;long;long;long")
DllStructSetData($DINewRect, 1, DllStructGetData($DIOrigRect, 1) - $DIGuiPos[2])
DllStructSetData($DINewRect, 2, DllStructGetData($DIOrigRect, 2))
DllStructSetData($DINewRect, 3, DllStructGetData($DIOrigRect, 3))
DllStructSetData($DINewRect, 4, DllStructGetData($DIOrigRect, 4))
Else
Return False
EndIf
DllCall("user32.dll", "uint", "SystemParametersInfoA", "uint", $SPI_SETWORKAREA, "uint", 0, "ptr", DllStructGetPtr($DINewRect), "uint", 0)
$var = WinList()
For $i = 1 To $var[0][0]
If $var[$i][0] <> "" And BitAND(WinGetState($var[$i][1]), 2 + 32 + 8) Then
WinMove($var[$i][1], "", DllStructGetData($DIOrigRect, 1), DllStructGetData($DIOrigRect, 2), DllStructGetData($DIOrigRect, 3), DllStructGetData($DIOrigRect, 4))
EndIf
Next
If $DIpos = "right" Then
WinMove($DIGuiPos, "", DllStructGetData($DINewRect, 3), DllStructGetData($DINewRect, 2), $DIGuiPos[2], DllStructGetData($DIOrigRect, 4) - DllStructGetData($DIOrigRect, 2))
ElseIf $DIpos = "left" Then
WinMove($DIGuiPos, "", DllStructGetData($DINewRect, 3) - $DIGuiPos[2], DllStructGetData($DINewRect, 2), $DIGuiPos[2], DllStructGetData($DIOrigRect, 4) - DllStructGetData($DIOrigRect, 2))
EndIf
EndFunc ;==>DockIt
Thanks Everybody