Hallo,
ich habe wieder einmal eine Frage:
Ich habe mir ein Script geschrieben, mit dem man einen Bereich mit 2 Tastenkombinationen definiert, und wenn man Alt+S drückt, dann wird Paint geöffnet und der zuerst definierte bereich wird dann nachgezeichnet.
Ich habe das so gemacht, dass ich zuerst die Farben von jedem Pixel im Bereich in ein Array speichere und dann stelle ich bei Paint immer die Farbe so ein und male mit dem Stift einen punkt und dann immer weiter.
Jetzt meine Frage:
Bei dem Einlesen der Farben in das Array, braucht mein Script sehr lange, kann mir jemand sagen warum??
Hier der code:
Spoiler anzeigen
Opt("WinTitleMatchMode", 2)
#include <Color.au3>
[/autoit] [autoit][/autoit] [autoit]Local $ObenX, $ObenY, $UntenX, $UntenY, $GroesseX, $GroesseY, $Quelle
[/autoit] [autoit][/autoit] [autoit];61, 94
[/autoit] [autoit][/autoit] [autoit]HotKeySet("!1", "Oben")
HotKeySet("!2", "Unten")
HotKeySet("!p", "Pause")
HotKeySet("!s", "Start")
HotKeySet("{ESC}", "_Exit")
While 1
WEnd
Func _Exit()
Exit
EndFunc
Func Pause()
While 1
WEnd
EndFunc
Func Oben()
$Pos = MouseGetPos()
$ObenX = $Pos[0]
$ObenY = $Pos[1]
EndFunc
Func Unten()
$Pos = MouseGetPos()
$UntenX = $Pos[0]
$UntenY = $Pos[1]
EndFunc
Func Start()
$Quelle = WinGetTitle("")
$GroesseX = $UntenX - $ObenX
$GroesseY = $UntenY - $ObenY
Dim $Farbe[$GroesseY][$GroesseX]
WinActivate($Quelle)
For $i = 0 To $GroesseY - 1
For $j = 0 To $GroesseX - 1
$Farbe[$i][$j] = PixelGetColor($ObenX + $j, $ObenY + $i)
Next
Next
Run("mspaint.exe")
WinWaitActive("Paint")
For $i = 0 To $GroesseY - 1
For $j = 0 To $GroesseX - 1
Send("!F")
Send("p")
Send("!d")
ControlSetText("", "", 706, _ColorGetRed($Farbe[$i][$j]))
ControlSetText("", "", 707, _ColorGetGreen($Farbe[$i][$j]))
ControlSetText("", "", 708, _ColorGetBlue($Farbe[$i][$j]))
ControlClick("", "OK", 1)
MouseClick("left", 71 + $j, 104 + $i)
Next
Next
MsgBox(64, "Info", "Fertig")
EndFunc