Klovis 0 Posted July 23, 2011 Were all familiar with the windows error So I want to Emulate that with auto it, so everytime you move the window it would make another window where is was 20 pixels ago, so is there a GUIRegisterMsg or something like that that keeps track of the Window'sPOS. Any maybe a way to recreate window too? I don't know where to start Share this post Link to post Share on other sites
pieeater 1 Posted July 23, 2011 (edited) the window moving part isn't that hard. $pos = WinGetPos("Untitled - Notepad") While 1 $pos2 = WinGetPos("Untitled - Notepad") If $pos[0] <> $pos2[0] And $pos[1] <> $pos2[1] Then ;commands here EndIf WEnd example: $pos = WinGetPos("Untitled - Notepad") While 1 $pos2 = WinGetPos("Untitled - Notepad") If $pos[0] <> $pos2[0] And $pos[1] <> $pos2[1] Then ConsoleWrite($pos[0] & "=" & $pos2[0] & ";" & $pos[1] & "=" & $pos2[1] & @CRLF) $pos = WinGetPos("Untitled - Notepad") EndIf WEnd the hard part in my opinion is the 20 pixels and the acitual function to make another window. i would say in the commands put a guicreate with the cords of the original $pos and then make $pos have the same value as the new location, then it should repeat. but creating so many gui's might crash your computer if they get outta hand. Edited July 23, 2011 by pieeater [spoiler]My UDFs: Login UDF[/spoiler] Share this post Link to post Share on other sites
wakillon 403 Posted July 23, 2011 Something like this ? #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $_Gui = GUICreate ( "", 350, 150, Default, Default, Default, $WS_EX_TOPMOST ) GUISetState ( ) GUIRegisterMsg ( $WM_MOVE, "_WM_MOVE" ) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func _WM_MOVE ( $hWnd, $Msg, $wParam, $lParam ) $_WinPos = WinGetPos ( $_Gui ) $_Gui2 = GUICreate ( "", 200, 100, $_WinPos[0]-20, $_WinPos[1]-20 ) GUISetState ( ) Return $GUI_RUNDEFMSG EndFunc ;==> _WM_COMMAND ( ) AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts Share this post Link to post Share on other sites
Klovis 0 Posted July 23, 2011 So I got stuck... every new notepad I make has the same name so... how would I do this diffently? FileWrite("notepad.bat", "start notepad.exe") Sleep(1000) ShellExecute(@ScriptDir&"\notepad.bat") Sleep(1000) $pos = WinGetPos("Untitled - Notepad") While 1 $pos2 = WinGetPos("Untitled - Notepad") If $pos[0] <> $pos2[0] And $pos[1] <> $pos2[1] Then ConsoleWrite($pos[0] & "=" & $pos2[0] & ";" & $pos[1] & "=" & $pos2[1] & @CRLF) makenew() $pos = WinGetPos("Untitled - Notepad") EndIf WEnd FileDelete(@ScriptDir&"\notepad.bat") Func makenew() ShellExecute(@ScriptDir&"\notepad.bat") WinMove("Untitled - Notepad", -1, $pos2[0], $pos2[1]) EndFunc Share this post Link to post Share on other sites
Klovis 0 Posted July 23, 2011 What's wrong with this script MsgBox(0, "Troll", "Lol") $pos = WinGetPos("Troll") $t = 0 While 1 $pos2 = WinGetPos("Troll") If $pos[0] <> $pos2[0] And $pos[1] <> $pos2[1] Then makenew() $pos = WinGetPos("Troll") EndIf WEnd Func makenew() $t = $t + 1 MsgBox(0, "Troll" & $t, "Lol") WinMove("Troll" & $t, -1, $pos2[0], $pos2[1]) EndFunc Share this post Link to post Share on other sites
wakillon 403 Posted July 23, 2011 Did you try mine ? AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts Share this post Link to post Share on other sites
Klovis 0 Posted July 23, 2011 Something like this ? #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $_Gui = GUICreate ( "", 350, 150, Default, Default, Default, $WS_EX_TOPMOST ) GUISetState ( ) GUIRegisterMsg ( $WM_MOVE, "_WM_MOVE" ) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func _WM_MOVE ( $hWnd, $Msg, $wParam, $lParam ) $_WinPos = WinGetPos ( $_Gui ) $_Gui2 = GUICreate ( "", 200, 100, $_WinPos[0]-20, $_WinPos[1]-20 ) GUISetState ( ) Return $GUI_RUNDEFMSG EndFunc ;==> _WM_COMMAND ( ) Dude thanks, total lol time over here Share this post Link to post Share on other sites
Klovis 0 Posted July 23, 2011 Is it possible to get rid of the taskbar notification for when it is up I tryed the whole toolwindow thing and it didn't work. #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $_Gui = GUICreate ( "", 200, 100, Default, Default, Default, BitOR($WS_EX_TOPMOST,$WS_EX_TOOLWINDOW) ) GUISetState ( ) GUIRegisterMsg ( $WM_MOVE, "_WM_MOVE" ) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func _WM_MOVE ( $hWnd, $Msg, $wParam, $lParam ) $_WinPos = WinGetPos ( $_Gui ) $_Gui2 = GUICreate ( "", 200, 100, $_WinPos[0], $_WinPos[1] ) GUISetState ( ) Return $GUI_RUNDEFMSG EndFunc ;==> _WM_COMMAND ( ) Share this post Link to post Share on other sites
wakillon 403 Posted July 23, 2011 Is it possible to get rid of the taskbar notification for when it is up I tryed the whole toolwindow thing and it didn't work. Try #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $_Gui = GUICreate ( "", 200, 100, Default, Default, Default, $WS_EX_TOPMOST ) GUISetState ( ) GUIRegisterMsg ( $WM_MOVE, "_WM_MOVE" ) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func _WM_MOVE ( $hWnd, $Msg, $wParam, $lParam ) $_WinPos = WinGetPos ( $_Gui ) $_Gui2 = GUICreate ( "", 200, 100, $_WinPos[0], $_WinPos[1], Default, Default, WinGetHandle ( AutoItWinGetTitle ( ) ) ) GUISetState ( ) Return $GUI_RUNDEFMSG EndFunc ;==> _WM_COMMAND ( ) AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts Share this post Link to post Share on other sites
Klovis 0 Posted July 23, 2011 Dude thanks, now I have an awesome toy ^^ Share this post Link to post Share on other sites