Register for your free account! | Forgot your password?

Go Back   elitepvpers › Coders Den › AutoIt
You last visited: Today at 12:15

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Pixelsearch Fenster zuweisen?

Discussion on Pixelsearch Fenster zuweisen? within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jan 2013
Posts: 61
Received Thanks: 2
Pixelsearch Fenster zuweisen?

Hallo,

gibt es bei Pixelsearch die Möglichkeit die Suche auf ein bestimmtes Fenster zu beschränken, wobei das Fenster dabei nicht im Vordergrund sein muss?

Laut der Dokumentation von Pixelsearch kann man doch nur ganz allgemein die x1,x2,y1,y2 Koordinaten für die Suche eingeben oder?
BOTCK is offline  
Old   #2
 
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
Ja stimmt, du könntest mit PixelGetColor arbeiten, wenn dir das reicht.
qkuh is offline  
Old   #3
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
AutoIt Hilfe :

Code:
PixelSearch ( left, top, right, bottom, color [, shade-variation [, step [, [SIZE="5"][B][COLOR="Red"]hwnd[/COLOR][/B][/SIZE]]]])
YatoDev is offline  
Old   #4
 
Fl00d3R's Avatar
 
elite*gold: 12
Join Date: Jun 2012
Posts: 2,052
Received Thanks: 138
Die Anfänger sind los!

Code:
[URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B]Func[/B][/COLOR][/URL] _Start[COLOR=#FF0000][B]([/B][/COLOR][COLOR=#FF0000][B])[/B][/COLOR]     [URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B]While[/B][/COLOR][/URL] [COLOR=#AC00A9][B][I]1[/I][/B][/COLOR]
        [URL="http://www.autoitscript.com/autoit3/docs/intro/lang_variables.htm"][COLOR=#AA0000][B]$koord[/B][/COLOR][/URL][COLOR=#0000FF][B][/B][/COLOR] [COLOR=#FF0000][B]=[/B][/COLOR] [URL="http://www.autoitscript.com/autoit3/docs/functions/WinGetPos.htm"][COLOR=#000090][B][I]WinGetPos[/I][/B][/COLOR][/URL][COLOR=#FF0000][B]([/B][/COLOR][COLOR=#9999CC][B]"Fenstername deines Programms"[/B][/COLOR][COLOR=#FF0000][B])[/B][/COLOR]         [URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B]If[/B][/COLOR][/URL] [URL="http://www.autoitscript.com/autoit3/docs/macros.htm"][COLOR=#FF33FF][B]@error[/B][/COLOR][/URL] [URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B]Then[/B][/COLOR][/URL] _pause[COLOR=#FF0000][B]([/B][/COLOR][COLOR=#FF0000][B])[/B][/COLOR]         [URL="http://www.autoitscript.com/autoit3/docs/intro/lang_variables.htm"][COLOR=#AA0000][B]$Pixel[/B][/COLOR][/URL][COLOR=#0000FF][B][/B][/COLOR] [COLOR=#FF0000][B]=[/B][/COLOR] [URL="http://www.autoitscript.com/autoit3/docs/functions/PixelSearch.htm"][COLOR=#000090][B][I]PixelSearch[/I][/B][/COLOR][/URL][COLOR=#FF0000][B]([/B][/COLOR][URL="http://www.autoitscript.com/autoit3/docs/intro/lang_variables.htm"][COLOR=#AA0000][B]$koord[/B][/COLOR][/URL][COLOR=#0000FF][B][/B][/COLOR][COLOR=#FF0000][B][[/B][/COLOR][COLOR=#AC00A9][B][I]0[/I][/B][/COLOR][COLOR=#FF0000][B]][/B][/COLOR][COLOR=#FF0000][B],[/B][/COLOR][URL="http://www.autoitscript.com/autoit3/docs/intro/lang_variables.htm"][COLOR=#AA0000][B]$koord[/B][/COLOR][/URL][COLOR=#0000FF][B][/B][/COLOR][COLOR=#FF0000][B][[/B][/COLOR][COLOR=#AC00A9][B][I]1[/I][/B][/COLOR][COLOR=#FF0000][B]][/B][/COLOR][COLOR=#FF0000][B],[/B][/COLOR][URL="http://www.autoitscript.com/autoit3/docs/intro/lang_variables.htm"][COLOR=#AA0000][B]$koord[/B][/COLOR][/URL][COLOR=#0000FF][B][/B][/COLOR][COLOR=#FF0000][B][[/B][/COLOR][COLOR=#AC00A9][B][I]0[/I][/B][/COLOR][COLOR=#FF0000][B]][/B][/COLOR][COLOR=#FF0000][B]+[/B][/COLOR][URL="http://www.autoitscript.com/autoit3/docs/intro/lang_variables.htm"][COLOR=#AA0000][B]$koord[/B][/COLOR][/URL][COLOR=#0000FF][B][/B][/COLOR][COLOR=#FF0000][B][[/B][/COLOR][COLOR=#AC00A9][B][I]2[/I][/B][/COLOR][COLOR=#FF0000][B]][/B][/COLOR][COLOR=#FF0000][B],[/B][/COLOR][URL="http://www.autoitscript.com/autoit3/docs/intro/lang_variables.htm"][COLOR=#AA0000][B]$koord[/B][/COLOR][/URL][COLOR=#0000FF][B][/B][/COLOR][COLOR=#FF0000][B][[/B][/COLOR][COLOR=#AC00A9][B][I]1[/I][/B][/COLOR][COLOR=#FF0000][B]][/B][/COLOR][COLOR=#FF0000][B]+[/B][/COLOR][URL="http://www.autoitscript.com/autoit3/docs/intro/lang_variables.htm"][COLOR=#AA0000][B]$koord[/B][/COLOR][/URL][COLOR=#0000FF][B][/B][/COLOR][COLOR=#FF0000][B][[/B][/COLOR][COLOR=#AC00A9][B][I]3[/I][/B][/COLOR][COLOR=#FF0000][B]][/B][/COLOR][COLOR=#FF0000][B],[/B][/COLOR][COLOR=#AC00A9][B][I]0xA70811[/I][/B][/COLOR][COLOR=#FF0000][B])[/B][/COLOR]         [URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B]If[/B][/COLOR][/URL] [URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B][/B][/COLOR][/URL][URL="http://www.autoitscript.com/autoit3/docs/intro/lang_operators.htm"][COLOR=#FF0000][B]Not[/B][/COLOR][/URL] [URL="http://www.autoitscript.com/autoit3/docs/macros.htm"][COLOR=#FF33FF][B]@error[/B][/COLOR][/URL] [URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B]Then[/B][/COLOR][/URL]             [URL="http://www.autoitscript.com/autoit3/docs/functions/MouseClick.htm"][COLOR=#000090][B][I]MouseClick[/I][/B][/COLOR][/URL][COLOR=#FF0000][B]([/B][/COLOR][COLOR=#9999CC][B]"left"[/B][/COLOR][COLOR=#FF0000][B],[/B][/COLOR][URL="http://www.autoitscript.com/autoit3/docs/intro/lang_variables.htm"][COLOR=#AA0000][B]$Pixel[/B][/COLOR][/URL][COLOR=#0000FF][B][/B][/COLOR][COLOR=#FF0000][B][[/B][/COLOR][COLOR=#AC00A9][B][I]0[/I][/B][/COLOR][COLOR=#FF0000][B]][/B][/COLOR][COLOR=#FF0000][B]+[/B][/COLOR][COLOR=#AC00A9][B][I]5[/I][/B][/COLOR][COLOR=#FF0000][B],[/B][/COLOR][URL="http://www.autoitscript.com/autoit3/docs/intro/lang_variables.htm"][COLOR=#AA0000][B]$Pixel[/B][/COLOR][/URL][COLOR=#0000FF][B][/B][/COLOR][COLOR=#FF0000][B][[/B][/COLOR][COLOR=#AC00A9][B][I]1[/I][/B][/COLOR][COLOR=#FF0000][B]][/B][/COLOR][COLOR=#FF0000][B]+[/B][/COLOR][COLOR=#AC00A9][B][I]10[/I][/B][/COLOR][COLOR=#FF0000][B])[/B][/COLOR]         [URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B]Else[/B][/COLOR][/URL]             [URL="http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm"][COLOR=#000090][B][I]MsgBox[/I][/B][/COLOR][/URL][COLOR=#FF0000][B]([/B][/COLOR][COLOR=#AC00A9][B][I]4096[/I][/B][/COLOR][COLOR=#FF0000][B],[/B][/COLOR][COLOR=#9999CC][B]"ERROR"[/B][/COLOR][COLOR=#FF0000][B],[/B][/COLOR][COLOR=#9999CC][B]"Kein Pixel gefunden"[/B][/COLOR][COLOR=#FF0000][B],[/B][/COLOR][COLOR=#AC00A9][B][I]2[/I][/B][/COLOR][COLOR=#FF0000][B])[/B][/COLOR]         [URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B]EndIf[/B][/COLOR][/URL]     [URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B]WEnd[/B][/COLOR][/URL]  [URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B]EndFunc[/B][/COLOR][/URL]
[URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B]Func[/B][/COLOR][/URL] _Ende [COLOR=#FF0000][B]([/B][/COLOR][COLOR=#FF0000][B])[/B][/COLOR]     [URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B]Exit[/B][/COLOR][/URL] [URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B]EndFunc[/B][/COLOR][/URL]
[URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B]Func[/B][/COLOR][/URL] _pause[COLOR=#FF0000][B]([/B][/COLOR][COLOR=#FF0000][B])[/B][/COLOR]     [URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B]While[/B][/COLOR][/URL] [URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B][/B][/COLOR][/URL][URL="http://www.autoitscript.com/autoit3/docs/intro/lang_operators.htm"][COLOR=#FF0000][B]Not[/B][/COLOR][/URL] [URL="http://www.autoitscript.com/autoit3/docs/functions/WinExists.htm"][COLOR=#000090][B][I]WinExists[/I][/B][/COLOR][/URL][COLOR=#FF0000][B]([/B][/COLOR][COLOR=#9999CC][B]"Programm"[/B][/COLOR][COLOR=#FF0000][B])[/B][/COLOR]         [URL="http://www.autoitscript.com/autoit3/docs/functions/Sleep.htm"][COLOR=#000090][B][I]Sleep[/I][/B][/COLOR][/URL][COLOR=#FF0000][B]([/B][/COLOR][COLOR=#AC00A9][B][I]100[/I][/B][/COLOR][COLOR=#FF0000][B])[/B][/COLOR]     [URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B]WEnd[/B][/COLOR][/URL] [URL="http://www.autoitscript.com/autoit3/docs/keywords.htm"][COLOR=#0000FF][B]EndFunc[/B][/COLOR][/URL]
Bei Fragen bitte melden.

LG Fl00d3R
Fl00d3R is offline  
Thanks
1 User
Old   #5
 
elite*gold: 0
Join Date: Jan 2013
Posts: 61
Received Thanks: 2
@FlutterShy Den Hwend Parameter hab ich zwar gesehn, aber den versteh ich nicht - wie errechne ich den ? Und was macht er genau?

@Fl00d3R dazu musst das Fenster nicht im Vordergrund laufen?
BOTCK is offline  
Old   #6
 
Croco™'s Avatar
 
elite*gold: 235
Join Date: Jan 2012
Posts: 920
Received Thanks: 377
Dieser Parameter benötigt eine Fenster Handle das man durch WinGetHandle erhält.
Heißt das Fenster 'Ich bin ein Fenster' dann bekommst du sein Handle durch
WinGetHandle('Ich bin ein Fenster').
Croco™ is offline  
Old   #7
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Quote:
Originally Posted by BOTCK View Post
@FlutterShy Den Hwend Parameter hab ich zwar gesehn, aber den versteh ich nicht - wie errechne ich den ? Und was macht er genau?

@Fl00d3R dazu musst das Fenster nicht im Vordergrund laufen?
Das handle (die HWND [Hardware number oder sowas ] )
Code:
$Window = WinGetTitle("Fenstername/teil des fensternamens)
$HWND = WinGetHandle($Window)
YatoDev is offline  
Old   #8
 
elite*gold: 0
Join Date: Jan 2013
Posts: 61
Received Thanks: 2
Hm also kommen direkt nach
Func Start()
$Window = WinGetTitle("FirefoxalsBeispiel")
$HWND = WinGetHandle($Window)

( ich deklarier am Anfang Global $Window=0 und $HWND =0)

und PixelSearch ( left, top, right, bottom, color [, shade-variation [, step [, hwnd]]])

würde ich dann statt hwnd einfach $HWND eintragen? Wieso klappt das bei mir nicht?
BOTCK is offline  
Old   #9
 
Croco™'s Avatar
 
elite*gold: 235
Join Date: Jan 2012
Posts: 920
Received Thanks: 377
Poste doch mal bitte dein Script die Kristallkugel von uns ist nämlich gerade kaputt.
Croco™ is offline  
Old   #10
 
elite*gold: 0
Join Date: Jan 2013
Posts: 61
Received Thanks: 2
ich hab mal den relevanten Teil raus:

Global $funcs = false
$Left = "left"

Func Start()
$funcs = True
EndFunc

Func Pause()
$funcs = False
while $funcs = False
sleeP(500)
WEnd
EndFunc

Func Ende()
Exit
EndFunc

while 1
if $funcs = True then
$pixrand = PixelSearch(1000,100,1100,120,0xFFF00,7, 2)

If IsArray($pixrand) = True Then
MouseClick($Left, $pixrand[0], $pixrand[1], 1, 0)
EndIf
Wend


Und ich würde gerne den Pixelsearch im aktiven Fenster laufen lassen.
BOTCK is offline  
Old   #11
 
Croco™'s Avatar
 
elite*gold: 235
Join Date: Jan 2012
Posts: 920
Received Thanks: 377
Code:
PixelSearch(1000,100,1100,120,0xFFF00,7, 2,WinGetHandle("[active]"))
Sucht immer im aktiven Fenster.
Croco™ is offline  
Old   #12
 
elite*gold: 0
Join Date: Jan 2013
Posts: 61
Received Thanks: 2
Und wenn ich jetzt in deinem bestimmten Fenster den Script laufen lassen will, was ändere ich dann bzw. wieso funktioniert das überhaupt ? "WinGetHandle" wurde doch von mir garnicht definiert?

(Und bringt es überhaupt was - wenn ich alle Funktionen so code, dass sie in einem bestimmten Fenster laufen - also MouseMove etc. kann ich dann an dem Pc normal arbeiten, oder darf ich auch dann die Maus nicht anfassen?)
BOTCK is offline  
Old   #13
 
Croco™'s Avatar
 
elite*gold: 235
Join Date: Jan 2012
Posts: 920
Received Thanks: 377
Nein, [active] ist kein Fenstertitel sondern ein vordefinierter Begriff der der Funktion WinGetHandel sagt dass es immer den Handel vom Aktiven Fenster zurück geben soll.
MouseMove ändert die Position deines Mauszeigers also darfst du ihn nicht bewegen.
Croco™ is offline  
Old   #14
 
elite*gold: 0
Join Date: Jan 2013
Posts: 61
Received Thanks: 2
achso ok, dann ist es ohnehin nutzlos, ob das Script dann im aktiven Fenster oder im Hintergrund ausgeführt wird, solange ich nicht nebenher arbeiten kann.
BOTCK is offline  
Old   #15
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Quote:
Originally Posted by »FlutterShy™ View Post
Das handle (die HWND [Hardware number oder sowas ] )
Handle (of a) WiNDow → window handle
Nichts mit Hardware.

Quote:
Originally Posted by BOTCK View Post
Und wenn ich jetzt in deinem bestimmten Fenster den Script laufen lassen will, was ändere ich dann bzw. wieso funktioniert das überhaupt ? "WinGetHandle" wurde doch von mir garnicht definiert?

(Und bringt es überhaupt was - wenn ich alle Funktionen so code, dass sie in einem bestimmten Fenster laufen - also MouseMove etc. kann ich dann an dem Pc normal arbeiten, oder darf ich auch dann die Maus nicht anfassen?)
WinGetHandle() ist eine Standardfunktion von AutoIt. Das Handle eines Fensters an eine Funktion zu übergeben macht unmögliches nicht möglich. PixelSearch() funktioniert ähnlich wie das menschliche Auge. Was das Script bzw. die Funktion nicht "sieht" kann schlicht und ergreifend nicht gefunden bzw. erfasst werden.
Fragst du dich jetzt, wofür dieser Parameter gut ist? Ganz einfach: Die Koordinaten erfolgen relativ zum jeweiligen Fenster und nicht über den Desktop. Du kannst das Fenster also frei bewegen ohne die Funktionalität deines Scripts zu beeinträchtigen.
Das setzt natürlich zwei Dinge voraus:
  1. Alle verwendeten Funktionen müssen mit den Fenster-Koordinaten arbeiten können. Ein normales MouseMove() oder MouseClick() wird hier nicht funktionieren.
  2. Der Arbeitsbereich (Fenster) MUSS sichtbar sein.

Das aktive ("[active]") Fenster kann logischerweise nicht im Hintergrund laufen, da sich diese zwei Zustände ausschließen.
Wie Croco™ schon geschrieben hat kannst du MouseMove() nicht im "Hintergrund" laufen lassen. Selbiges gilt für alle Mouse...() Funktionen.
Alternativ dazu kannst du allerdings ControlClick() (AutoIt Standardfunktion) oder PostMessage (AutoIt UDF von mir, findest du in diesem Forum) verwenden. Hier musst du allerdings beachten, dass dies nicht immer ohne weiteres möglich ist. Bei "modernen" Client basierenden Spielen funktionieren diese meist nur eingeschränkt oder gar nicht.


Um die Grundlegende Frage zu klären:
Ja, es ist bedingt möglich PixelSearch() im "Hintergrund" laufen zu lassen. Bedingt und Hintergrund in Anführungszeichen daher, da dass Fenster immer noch frei sichtbar sein muss. Sollten Aktionen mit der Maus ausgeführt werden, so musst du auf ControlClick() oder die PostMessage Funktion zurückgreifen. Bei Aktionen der Tastatur wäre es ControlSend() oder ebenfalls die PostMessage Funktion.
Hier ist es eigentlich nur eine Frage der Hardware, ich persönlich verwende drei Monitore, einen zu "opfern" tut nicht weh. Notebooks können häufig nur zwei Monitore ansteuern und sollte zudem ein zusätzlicher Monitor fehlen ist das ganze schon problematischer.
Je nach verbauter Hardware und Verwendungszweck wäre es auch möglich das Programm in einer virtuellen Maschine ausführen zu lassen. Diese kann selbst dann noch minimiert im Hintergrund laufen, wenn du MouseMove(), -Click() oder vergleichbares verwendest. Aber das hat nichts mehr mit AutoIt zu tun.
KDeluxe is offline  
Reply


Similar Threads Similar Threads
Multihack mit MobOnClick + fenster zuweisen.
09/13/2010 - Metin2 - 6 Replies
suche einen multihack mit mobonclick und fenster zuweisen. Jeder beitrag kriegt ein thx !
GEXX HACK Fenster zuweisen???
04/07/2010 - Metin2 - 4 Replies
hey, kann mir einer sagen wie man den hack von gexx einem bestimmten metin fenster zuweisen kann??? vielen dank im voraus geb gerne auch ein thx
Autoit / Metin2 Bot 2 einem Fenster zuweisen?
11/29/2009 - AutoIt - 25 Replies
Hallo, ich habe mal eine Frage an euch. So also zuerst wollte ich das der Bot 1;2;3 und F1 drückt wegen den Fertigkeiten. Später möchte ich noch einen Potter einfügen. Kann ich mit Autoit einen Bot erstellen der 2 Fenster gleichzeitig steuert? Oder muss ich da mit C++ weitermachen? Habe die SuFu benutzt, aber nicht gefunden, was mir half.
inaktives FENSTER PIXELSEARCH
12/01/2008 - Guild Wars - 6 Replies
HI, ich habe einen kleinen multi bot geschrieben. leider geht der über viele wege. bisher lasse ich jeden bot kurz wieder aktiv werden damit er pixelsearch nutzen kann. Ich möchte dies aber ändern, hat jemand von euch das schonmal probiert?? Ich versuche gerade die virtuelle Maus in gw auszulesen neuester Versuch mit pixelchecksum, da man dort ja nen hwnd angeben kann. Vielleicht hat ja wer Ideen, mems gehen aber nuja will ich nicht da ich bald auf WAR umsteige und den updater bisher...



All times are GMT +1. The time now is 12:16.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.