Ghost Mouse

10/16/2009 18:44 SCORNI#1
Ich hab mal ein 20 linien skript das die mouseclicks aufnimmt und in einer au3 datei abspeichert. Es gibt hier ein thema wo sowas benötigt wird und hier die Antwort. Aber das ist eine 5 minuten arbeit und noch sehr ausbaufähig.
Code:
#include <Misc.au3>
#include <String.au3>
$dll = DllOpen("user32.dll")

$asd=""
filewrite (@DesktopDir&"\mouse.au3","")
$file = FileOpen(@DesktopDir&"\mouse.au3", 1)
If $file = -1 Then
    MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
    Exit
EndIf
$time=timerinit()
Do
	If _IsPressed("01", $dll) Then
	$a=mousegetpos()
	
	$b=filewrite ($file,fileread ($file)&"mouseclick ("&_HexToString ("22")&"left"&_HexToString ("22")&","&$a[0]&","&$a[1]&")"&@CRLF)
	
	filewrite ($file,"sleep ("&TimerDiff ($time)&")"&@CRLF)
	$time=timerinit()
	endif
	if _IsPressed("79", $dll) Then
	$asd="ans"
	EndIf
	sleep (100)
	until $asd="ans"
sry wegen Zeilenumbruch im skript, die Zeile war einfach zu Lang
MfG SCORNI
edit: doch kein zeilenumbruch :D
10/16/2009 19:09 buFFy!#2
Ist nicht getestet, ist aber so irgendwie übersichtlicher ^^
Code:
#include <Misc.au3>

HotKeySet("{End}", "_Break")

$dll = DllOpen('user32.dll')
If $dll = -1 Then SetError(-1)

Global Const $fName = String("Mouse.au3")
Global $init = 0

Func _Break()
	DllClose($dll)
	Exit
EndFunc   ;==>_Break

While True
	If _IsPressed('01', $dll) Then
		While _IsPressed('01', $dll)
			Sleep(100)
		WEnd
		$xy = MouseGetPos()

		;mouseclick
		FileWriteLine($fName, _
				StringFormat("MouseClick('left',%i,%i)", $xy[0], $xy[1]))

		;time
		If $init <> 0 Then
			FileWriteLine($fName, _
					StringFormat("Sleep(%d)", _
					TimerDiff($init)))
		EndIf
		$init = TimerInit()
	EndIf
WEnd
10/16/2009 21:26 SCORNI#3
wieso einfach wenns auch kompliziert geht xD
meins hat 20 zeilen deins ca 40 aber thx
10/16/2009 21:31 buFFy!#4
Mein's ist aber übersichtlicher. Ich könnte das auch in 15 Zeilen quetschen wenn ich will ^^

^this
Code:
#include <Misc.au3>
HotKeySet("{End}", "_Break")
$dll = DllOpen('user32.dll')
If $dll = -1 Then SetError(-1)
Global Const $fName = String("Mouse.au3")
Global $init = 0
Func _Break()
	DllClose($dll)
	Exit
EndFunc   ;==>_Break
While True
	If _IsPressed('01', $dll) Then
		While _IsPressed('01', $dll)
			Sleep(100)
		WEnd
		$xy = MouseGetPos()
		FileWriteLine($fName, StringFormat("MouseClick('left',%i,%i)", $xy[0], $xy[1]))
		If $init <> 0 Then FileWriteLine($fName, StringFormat("Sleep(%d)", TimerDiff($init)))
		$init = TimerInit()
	EndIf
WEnd
21 Zeilen^^
10/17/2009 19:27 SCORNI#5
:D