|
You last visited: Today at 06:37
Advertisement
Tratsch rund um Autoit / Autoit Talk | kleinere Fragen
Discussion on Tratsch rund um Autoit / Autoit Talk | kleinere Fragen within the AutoIt forum part of the Coders Den category.
02/06/2013, 23:26
|
#886
|
elite*gold: 95
Join Date: Aug 2010
Posts: 2,254
Received Thanks: 279
|
Ich hab als Sleep - Wert nur mal Testweise 100 genommen. Jetzt funktioniert das ganze einmal und danach nicht mehr.
Code:
Code:
#include <ImageSearch.au3>
#include <GDIPlus.au3>
#include <Misc.au3>
HotKeySet("{F2}", "_x")
HotKeySet("{F3}", "_exit")
_GDIPlus_Startup()
$hImage =_GDIPlus_ImageLoadFromFile("bild oefnnen 15 zoll.png")
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
$x = 0
$y = 0
While 1
Sleep(100)
WEnd
Func _x()
If(_ImageSearch($hBitmap, 1, $x, $y, 20, 0)) Then
MouseClick("left", $x, $y, 1, 0)
Else
MsgBox(0, "", "")
EndIf
EndFunc
Func _exit()
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
Exit
EndFunc
Grundsätzlich geht es darum, einen Eintrag im Rechtsklick - Dropdown - Menü von Opera zu öffnen. Dazu habe ich von dem Eintrag einen Screenshot erstellt. Das ganze funktioniert jetzt testweiße über einen Hotkey, ansonsten würde ich es mit _IsPressed(02) machen.
Also sobald die rechte Maustaste gedrückt wurde soll nach diesem Bild gesucht werden und darauf geklickt werden (verbunden mit einem Timeout von zB einer Sekunde).
Ich hoffe, mir kann jemand helfen
|
|
|
02/06/2013, 23:42
|
#887
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
|
Code:
$hImage =_GDIPlus_ImageLoadFromFile("bild oefnnen 15 zoll.png")
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
Diese Variablen werden nur 1mal mit einem Wert gefüllt. Du überprüfst in deiner Func also jedes mal das Selbe. Einfach die Variablen in der Function neu "befüllen"
Quote:
Originally Posted by mono0
Grundsätzlich geht es darum, einen Eintrag im Rechtsklick - Dropdown - Menü von Opera zu öffnen. Dazu habe ich von dem Eintrag einen Screenshot erstellt. Das ganze funktioniert jetzt testweiße über einen Hotkey, ansonsten würde ich es mit _IsPressed(02) machen.
|
Warum benutzt du nicht  ?
Screenshot? ó_Ô
MfG
|
|
|
02/07/2013, 00:09
|
#888
|
elite*gold: 95
Join Date: Aug 2010
Posts: 2,254
Received Thanks: 279
|
Quote:
Originally Posted by Achat
Code:
$hImage =_GDIPlus_ImageLoadFromFile("bild oefnnen 15 zoll.png")
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
Diese Variablen werden nur 1mal mit einem Wert gefüllt. Du überprüfst in deiner Func also jedes mal das Selbe. Einfach die Variablen in der Function neu "befüllen"
Warum benutzt du nicht  ?
Screenshot? ó_Ô
MfG
|
Irgendwie hab ich mir das auch kurz gedacht, hatte dann aber irgendwie Angst, dass mein Arbeitsspeicher mit Bildern geflutet wird. Dass das Ganze so simpel ist, hätte ich echt nicht vermutet, tausend Dank!
Hab ich ein paar Seiten vorher in diesem Thread schon gefragt.
Ich hab Probleme, die ControlId von diesem Button rauszubekommen. Deswegen verwende ich derweil dieses Bild:
Ist bei 1920x1080 aufgenomme worden.
|
|
|
02/07/2013, 17:04
|
#889
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,403
|
Quote:
Originally Posted by mono0
Irgendwie hab ich mir das auch kurz gedacht, hatte dann aber irgendwie Angst, dass mein Arbeitsspeicher mit Bildern geflutet wird. Dass das Ganze so simpel ist, hätte ich echt nicht vermutet, tausend Dank!
Hab ich ein paar Seiten vorher in diesem Thread schon gefragt.
Ich hab Probleme, die ControlId von diesem Button rauszubekommen. Deswegen verwende ich derweil dieses Bild:
Ist bei 1920x1080 aufgenomme worden.
|
MouseClick('right')
$aPos = MouseGetPos()
Und dann MouseClick('left',$aPos[0]+$OffsetX,$aPos[1]+$OffsetY)
MfG
|
|
|
02/07/2013, 17:34
|
#890
|
elite*gold: 95
Join Date: Aug 2010
Posts: 2,254
Received Thanks: 279
|
Quote:
Originally Posted by Achat
MouseClick('right')
$aPos = MouseGetPos()
Und dann MouseClick('left',$aPos[0]+$OffsetX,$aPos[1]+$OffsetY)
MfG
|
So hatte ich es am Anfang auch, das Problem ist nur, dass das Rechtsklick Menü nicht instant aufgeht. Also teilweise hatte ich, wenn ich das Script benötigt habe, 100 - 200 Tabs offen, das hat das schon mal ne halbe Sekunde gedauert. Deswegen wollte ich etwas, das unabhängig von einer eingestellten Sleep - Dauer ist (die anscheinend sowieso Müll ist  ).
|
|
|
02/08/2013, 13:02
|
#891
|
elite*gold: 544
Join Date: Nov 2010
Posts: 1,868
Received Thanks: 1,335
|
Gibt es eine mögichkeit (mit GDI+) eine .png anzeigen zu lassen (in der Mitte des Bildschirms, das sollte ich aber auch hinbekommen) welche natürlich einen transparenten Hintergrund hat und einen nicht beim klicken behindert (ich meine damit das hinter dem bild zum Beispiel ein Programm vom Desktop ist, und wenn man dieses Programm anklickt, das bild nicht "davor liegt"). Das ganze soll dann noch immer im Vordergrund sein (eventuell mit $WS_EX_TOPMOST oder WinSetOnTop) und nicht verschiebbar...
|
|
|
02/08/2013, 14:35
|
#892
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
Quote:
Originally Posted by No Plan
Gibt es eine mögichkeit (mit GDI+) eine .png anzeigen zu lassen (in der Mitte des Bildschirms, das sollte ich aber auch hinbekommen) welche natürlich einen transparenten Hintergrund hat und einen nicht beim klicken behindert (ich meine damit das hinter dem bild zum Beispiel ein Programm vom Desktop ist, und wenn man dieses Programm anklickt, das bild nicht "davor liegt"). Das ganze soll dann noch immer im Vordergrund sein (eventuell mit $WS_EX_TOPMOST oder WinSetOnTop) und nicht verschiebbar...
|
kann es sein, dass du eine art fadenkreuz haben willst?
hier ist ein beispiel, den ich mir mal irgendwo kopiert und gespeichert hatte, vllt. hilft es ja
PHP Code:
#Include <Misc.au3>
HotKeySet("{ESC}", "_exit")
$color1 = 0x0000FF ;gelb = 0x00F0F0 ; rot = 0x0000FF ; grün = 0x00FF00 ; blau = 0xFF0000 ; weiß = =0xFFFFFF ; lila=0xAC00A9
_run()
Func _Run()
;$handle = ControlGetHandle("Counter-Strike", "", 1)
$handle = ControlGetHandle("[ACTIVE]", "", 1)
While 1
For $i=1 To 20
SetPixel($handle, (@DesktopWidth/2-10)+$i, @DesktopHeight/2, $color1)
SetPixel($handle, @DesktopWidth/2, (@DesktopHeight/2-10)+$i, $color1)
Next
Sleep(10)
WEnd
EndFunc ;==>_Run
Func SetPixel($handle, $x, $y, $color)
$dc = DllCall("user32.dll", "int", "GetDC", "hwnd", $handle)
$setpixel = DllCall("gdi32.dll", "long", "SetPixel", "long", $dc[0], "long", $x, "long", $y, "long", $color)
$realesedc = DllCall("user32.dll", "int", "ReleaseDC", "hwnd", 0, "int", $dc[0])
EndFunc ;==>SetPixel
Func _exit()
Exit
EndFunc ;==>_exit
|
|
|
02/08/2013, 15:22
|
#893
|
elite*gold: 544
Join Date: Nov 2010
Posts: 1,868
Received Thanks: 1,335
|
Quote:
Originally Posted by omer36
kann es sein, dass du eine art fadenkreuz haben willst?
|
yo, richtig geraten.
Aber ich möchte eben wie schon geschrieben, eine png als Fadenkreuz haben.
|
|
|
02/08/2013, 16:01
|
#894
|
elite*gold: 95
Join Date: May 2011
Posts: 982
Received Thanks: 189
|
png in ein array einlesen lassen und das array mit pixelset durchgehen.
png zu array geht glaub ich mit gdi+
|
|
|
02/10/2013, 16:05
|
#895
|
elite*gold: 0
Join Date: Feb 2013
Posts: 35
Received Thanks: 25
|
Hey, kleine Frage: Weiss einer, wie ich die Maus um eine bestimmte Anzahl Pixel verschieben kann(x/y)? Wichtig ist, dass ich die Maus nicht zu einer Koordinate bewegen möchte, also kein Aktuelle Mausposition (+x/+y). Wirklich nur verschieben.
|
|
|
02/10/2013, 16:18
|
#896
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
$pos=MouseGetPos()
MouseMove($pos[0]+50, $pos[1]+50, 0)
50pixel rechts, und 50 nachunten verschoben
|
|
|
02/10/2013, 16:21
|
#897
|
elite*gold: 0
Join Date: Feb 2013
Posts: 35
Received Thanks: 25
|
Quote:
Originally Posted by omer36
$pos=MouseGetPos()
MouseMove($pos[0]+50, $pos[1]+50, 0)
50pixel rechts, und 50 nachunten verschoben
|
Nein, gerade so klappt es ja nicht, und da wäre ich auch selber draufgekommen. Es funzt so nicht, da die Maus 'verankert' ist, und so sobald sie zu einer Koordinate soll Wie verrückt versucht dahinzugelangen, dort aber niemals ankommen wird.
|
|
|
02/10/2013, 16:23
|
#898
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
Quote:
Originally Posted by CyWave
Nein, gerade so klappt es ja nicht, und da wäre ich auch selber draufgekommen. Es funzt so nicht, da die Maus 'verankert' ist, und so sobald sie zu einer Koordinate soll Wie verrückt versucht dahinzugelangen, dort aber niemals ankommen wird.
|
wie verankert?
spiel? flash? desktop?
|
|
|
02/10/2013, 16:31
|
#899
|
elite*gold: 0
Join Date: Feb 2013
Posts: 35
Received Thanks: 25
|
Quote:
Originally Posted by omer36
wie verankert?
spiel? flash? desktop?
|
Spiel, also zentral auf dem Bildschirm.
|
|
|
02/11/2013, 08:21
|
#900
|
elite*gold: 95
Join Date: Aug 2010
Posts: 2,254
Received Thanks: 279
|
Quote:
Originally Posted by CyWave
Spiel, also zentral auf dem Bildschirm.
|
Versuchs mal direkt mit der User32.dll bzw google mal AutoIT EnhancedMouseClick, vielleicht gehts damit...
|
|
|
Similar Threads
|
[Sammelthread]Fragen zu Autoit wie man Hacks herstellt(Autoit) + Antworten
11/16/2011 - Metin2 - 0 Replies
Hallo Liebe Community,
Ich habe diesen Thread aufgemacht weil manche leute mit Autoit nicht mehr weiterkommen wie man Hack herstellt ,ich habe mit schon ein Multihack mit Autoit herstellt das war einfach .Da viele User nicht weiterkommen werden habe ich mich entschieden ein Thread aufzumachen mit Fragen und ich den dann Antworten kann und helfen kann!
------------------------------------------------- ---------------------------
Mein Multihack:...
|
All times are GMT +1. The time now is 06:40.
|
|