Jump to content
Sign in to follow this  
Klovis

Event on Window Move

Recommended Posts

Klovis

Were all familiar with the windows error post-65393-0-33815300-1311390451_thumb.j

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

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 by pieeater

[spoiler]My UDFs: Login UDF[/spoiler]

Share this post


Link to post
Share on other sites
wakillon

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.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites
Klovis

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

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

Did you try mine ?


AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites
Klovis

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

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

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.0WIN 8.1 X64 - Other Example Scripts

Share this post


Link to post
Share on other sites
Klovis

Dude thanks, now I have an awesome toy ^^

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×