Ich weiß nicht, ob ich dich komplett richtig verstehe und ob das Script bei dir klappt, aber eigentlich sollte es das machen, was du wünscht:
Code:
#NoTrayIcon
#include <Misc.au3>
#include <Array.au3>
Opt("TrayMenuMode", 1)
Opt("WinTitleMatchMode", 2)
TraySetIcon(@SystemDir & "\shell32.dll", -121)
Global $gsOldPos
Global $gsExe = IniRead("MouseTrap.ini", "Settings", "Exe", -1)
If $gsExe = -1 Then
MsgBox(32, "MouseTrap-Fehler", "Bitte Exe zum Ausführen mit kompletten Pfad in der MousTrap.ini setzen!")
Exit
EndIf
If Not FileExists($gsExe) Then
MsgBox(32, "MouseTrap-Fehler", "Der Pfad zur Exe in der MouseTrap.ini ist nicht korrekt!")
Exit
EndIf
Global $gsTitle = IniRead("MouseTrap.ini", "Settings", "Title", -1)
If $gsTitle = -1 Then
MsgBox(32, "MouseTrap-Fehler", "Bitte Fenstertitel in der MouseTrap.ini setzen!")
Exit
EndIf
Run($gsExe)
WinWait($gsTitle, "", 30)
If Not WinExists($gsTitle) Then
MsgBox(32, "MouseTrap-Fehler", "Das angegebene Fenster konnte auch nach 30 Sekunden nicht gefunden werden!")
Exit
EndIf
While WinExists("Notepad")
_Trap()
Sleep(10)
WEnd
Func _Trap()
Local $aPos = WinGetPos("Notepad")
Local $sPos = _ArrayToString($aPos, "|")
If $gsOldPos <> $sPos Then
$gsOldPos = $sPos
_MouseTrap($aPos[0], $aPos[1], $aPos[2] + $aPos[0], $aPos[3] + $aPos[1])
EndIf
EndFunc
Die kompilierte Exe (inkl. Source) kannst du dir hier herunterladen:
http://rapidshare.com/files/75342784/MouseTrap.rar
Einfach irgendwohin entpacken und die beiliegende MouseTrap.ini anpassen. Der komplette Pfad zur auszuführenden Exe muss unter Settings hier Exe= und der Fenstertitel hinter Title=
Als Fenstertitel nimmst du einen eindeutigen Teil des Fensternamens, der angezeigt wird, wenn du das Spiel im Fenstermodus laufen lässt.
Das Script beendet sich automatisch, wenn das Spiel beendet wird.