Autoit Bildschirmteil ausschneiden

09/27/2013 16:31 golle12#1
Guten Tag liebe Community,

und zwar habe ich folgende Frage ich möchte mit Autoit einen Bot machen(ist schon getan) mit Imagesearch , aber die Bilder ändern sich mit jedem Update. und da möchte ich das es sich wenn es geupdatet wird (das Spiel) ich mit autoit mir ein Bild ausschneide (Zum Beipiel: den Button = Start) und es als .jpg oder .bmp) und anschließend gespeichert wird. Ich hab zahlreiche Foren durchsucht aber nicht das gefunden was ich für die Lösung des Problems benötige. Ich hoffe ihr könnt mir helfen

LG Golle12
09/27/2013 17:05 butter123#2
kannste gdi plus für benutzen
09/27/2013 17:07 golle12#3
Und welchen Befehl ?
09/27/2013 17:31 alpines#4
Als Bitmap einlesen und den Bereich schneiden.
09/27/2013 17:36 golle12#5
Und wie? Ich hab keine Ahnung mit welchem Befehl dies geschehen soll ?
09/27/2013 17:43 alpines#6
Da musst du dich in der Funktionsreferenz von GDI+ umsehen. Die findest du auf: [Only registered and activated users can see links. Click Here To Register...]
Das ist nur ein Beispielbefehl, die Referenz davon findest du entweder auf autoitscript.com oder per Google.
09/27/2013 17:55 golle12#7
ok danke ich schau es mir an :D
09/27/2013 18:19 butter123#8
und mit bmp:
1. in bmp umwandeln (mit gdi+)
2. datei öffnen
3. bei wiki nachgucken wie bmps aufgebaut sind
4. array mit den farbwerten erstellen
5. das rausschneiden was du brauchst
6. wieder so zusammensetzen, das eine bmp entsteht
09/28/2013 16:10 golle12#9
ich weiß jetzt nicht so wie du das meinst aber, ich meine wie bei einem Screenshot einen Teil des Bildschirms zu fotographieren und dies als .jpg oder .bmp abzuspeichern so das der Bot die Image lesen kann.
09/28/2013 16:18 alpines#10
Dafür gibt es schon eine Funktion: [Only registered and activated users can see links. Click Here To Register...]
09/28/2013 17:02 golle12#11
ok danke igendwie ich hab mal von jemanden gesehen der hatte auch einen Bot als er ihn startete um eine bestimmte Position auszuschneiden hate er als Mauszeiger ein Kreuz. Man hielt die linke Maustaste gedrückt und man bekam die ausgewählte Fläche gespeichert, wie bei manchen Fotobearbeitungsprogrammen. Wie kann man so was machen ?
09/28/2013 17:09 alpines#12
Entweder selber scripten oder ein fertiges nehmen, hier hast du ein Beispiel.
Dieses Script funktioniert nur wenn man das Quadrat von oben links nach unten rechts zieht.Die Koordinaten müssen angepasst werden, wenn es andersherum ist.
Aber das ist einfach Mathematik und geht schnell.
Code:
#include <Misc.au3>

Local $bLMBpressed = False, $aFirstPos[2], $aSecondPos[2]

While 1
	If $bLMBpressed = False And _IsPressed(01) Then
		$bLMBpressed = True
		$aFirstPos = MouseGetPos()
	ElseIf $bLMBpressed = True And Not _IsPressed(01) Then
		$bLMBpressed = False
		$aSecondPos = MouseGetPos()
		ExitLoop
	EndIf
WEnd

MsgBox(64, "Koordinaten", "Von: " & $aFirstPos[0] & "," & $aFirstPos[1] & @CRLF & "Bis: " & $aSecondPos[0] & "," & $aSecondPos[1])
09/28/2013 17:28 golle12#13
ok danke :D

mit deiner Hilfe hab ich es so
PHP Code:
#include <Misc.au3>
#Include <ScreenCapture.au3>

Local $bLMBpressed = False, $aFirstPos[2], $aSecondPos[2],$Name

While 1
    
If $bLMBpressed = False And _IsPressed(01) Then
        $bLMBpressed 
= True
        $aFirstPos 
= MouseGetPos()
    ElseIf 
$bLMBpressed = True And Not _IsPressed(01) Then
        $bLMBpressed 
= False
        $aSecondPos 
= MouseGetPos()
        
ExitLoop
    
EndIf
WEnd

$Name 
= InputBox("Bildnameneingabe","Bitte gib einen Bildnamen ein")
Sleep(1500)
_ScreenCapture_Capture(@ScriptDir & "\"& $Name &".bmp", $aFirstPos[0], $aFirstPos[1], $aSecondPos[0], $aSecondPos[1]) 
und war möchte ich noch das es nicht den Klick sondern nur die Funktion ausführt. (Also anstatt dass der Linksklick der Maus das Spiel startet, soll es nur die Autoit Funktion ausführen.) Ist es mit der Funktion (AutoItSetOption) möglich oder braucht man eine andere?Und wie kann das Bild vergrößert (gezoomt) werden?