Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 20:35

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

Advertisement



Problem mit Controlsend

Discussion on Problem mit Controlsend within the AutoIt forum part of the Coders Den category.

Reply
 
Old 08/02/2010, 13:16   #16
 
elite*gold: 0
Join Date: Sep 2009
Posts: 531
Received Thanks: 1,775
hm ich glaube schon weis aber nicht auf jedenfall liegts daran wen der bot 1 drückt oder tab und ich im hintergrund auch tab oder 1 schreibe dan fängt tastatur An zu Spinnen daran liegts auf jedenfall funktioniert das MiT _Keysend nicht..
Italien...Donni is offline  
Old 08/03/2010, 14:33   #17
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Wofür gibts PostMessage?

Hier mal ein Beispiel, musst du natürlich noch anpassen:
PHP Code:
#include <EditConstants.au3>

#Region GUI
GUICreate("KDForm"17735)
GUISetBkColor(0xFFFFFF)
GUICtrlCreateLabel("F"10101117)
GUICtrlSetFont(-188000"MS Sans Serif")
$I_F GUICtrlCreateInput("1"3082521$ES_CENTER)
GUICtrlSetLimit(-120)
$B_F GUICtrlCreateButton("Send F"8057525)
GUISetState(@SW_SHOW)
#EndRegion

While True
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case -3
            
Exit
        Case 
$B_F
            _SendFKey
(WinGetHandle("[CLASS:Nksp]"), GUICtrlRead($I_F))
    EndSwitch
WEnd


Func _SendFKey
($hWnd$Key)
   
$Key 111 $Key

    
For $i 1 To StringLen($Key)
        
$ret DllCall("user32.dll""int""MapVirtualKey""int"$Key"int"0)
        If 
IsArray($retThen
            DllCall
("user32.dll""bool""PostMessage""hwnd"$hWnd"int"0x100"int"$Key"long"_MakeLong(1$ret[0]))
            
Sleep(100)
            
DllCall("user32.dll""bool""PostMessage""hwnd"$hWnd"int"0x101"int"$Key"long"_MakeLong(1$ret[0]) + 0xC0000000)
        EndIf
    
Next
EndFunc

Func _MakeLong
($LoWord$HiWord) ;WinAPI.au3
    
Return BitOR($HiWord 0x10000BitAND($LoWord0xFFFF))
EndFunc 
Die Funktion ist eigentlich für F-Tasten gedacht, deswegen habe ich immer die 111 addiert.

Eine Tabelle mit den benötigten Codes findest du .
KDeluxe is offline  
Old 08/03/2010, 14:49   #18
 
bladerofdarknes's Avatar
 
elite*gold: 0
Join Date: Mar 2008
Posts: 1,524
Received Thanks: 285
ich hab meine zweifel ob er das versteht

Quote:
DllCall("user32.dll", "bool", "PostMessage", "hwnd", $hWnd, "int", 0x100, "int", $Key, "long", _MakeLong(1, $ret[0]))
Sleep(100)
DllCall("user32.dll", "bool", "PostMessage", "hwnd", $hWnd, "int", 0x101, "int", $Key, "long", _MakeLong(1, $ret[0]) + 0xC0000000)
bladerofdarknes is offline  
Old 08/03/2010, 14:54   #19
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Braucht man nicht, kann man auch in eine UDF packen. Dafür sollte man aber für die "{Tasten}" StringReplace benutzen.
KDeluxe is offline  
Old 08/03/2010, 15:38   #20
 
elite*gold: 0
Join Date: Sep 2009
Posts: 531
Received Thanks: 1,775
hm ich versteh das wirklich nich -.-
Italien...Donni is offline  
Old 08/03/2010, 15:40   #21
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Ich kann ja mal eine UDF basteln, benutzt du noch andere Tasten außer Tab, die länger als 1 sind (z. B. "W")?
KDeluxe is offline  
Old 08/03/2010, 15:48   #22
 
elite*gold: 0
Join Date: Sep 2009
Posts: 531
Received Thanks: 1,775
soll ich dir mal das ganze zeigen?


PHP Code:
    Func _1()
        
ControlSend("4Story_GSP",""0"{Y}")
        
ControlSend("4Story_GSP",""0"{Y}")
        
ControlSend("4Story_GSP",""0"{TAB}")
        
Sleep(50)
        
ControlSend("4Story_GSP",""0"{Y}")
        
ControlSend("4Story_GSP",""0"{Y}")
        
ControlSend("4Story_GSP",""0"{TAB}")
        
Sleep(50)
        
ControlSend("4Story_GSP",""0"{Y}")
        
ControlSend("4Story_GSP",""0"{Y}")
        
ControlSend("4Story_GSP",""0"{TAB}")
        
Sleep(50)
        
ControlSend("4Story_GSP",""0"{TAB}")
        
Sleep(400)
        
ControlSend("4Story_GSP",""0"{1}")
        
Sleep(1750)
        
ControlSend("4Story_GSP","",0"{TAB}")
        
Sleep(400)
        
ControlSend("4Story_GSP",""0"{1}")
        
Sleep (1750)
        
ControlSend("4Story_GSP",""0"{TAB}")
        
Sleep(400)
        
ControlSend("4Story_GSP",""0"{1}")
        
Sleep(1750)
        
ControlSend("4Story_GSP","",0"{TAB}")
        
Sleep(400)
        
ControlSend("4Story_GSP",""0"{1}")
        
Sleep (1750)

        
ControlSend("4Story_GSP",""0"{Y}")
        
ControlSend("4Story_GSP",""0"{Y}")
        
ControlSend("4Story_GSP",""0"{TAB}")
        
Sleep(50)
        
ControlSend("4Story_GSP",""0"{Y}")
        
ControlSend("4Story_GSP",""0"{Y}")
        
ControlSend("4Story_GSP",""0"{TAB}")
        
Sleep(50)
        
ControlSend("4Story_GSP",""0"{Y}")
        
ControlSend("4Story_GSP",""0"{Y}")
        
ControlSend("4Story_GSP",""0"{TAB}")
        
Sleep(250)
        
ControlSend("4Story_GSP",""0"{1}")
        
Sleep(1750)
        
ControlSend("4Story_GSP","",0"{TAB}")
        
Sleep(400)
        
ControlSend("4Story_GSP",""0"{1}")
        
Sleep (1750)
        
ControlSend("4Story_GSP",""0"{X}")
        
Sleep(250)
        
ControlSend("4Story_GSP",""0"{Z}")
        
Sleep(250)
        
ControlSend("4Story_GSP",""0"{X}")
        
Sleep(250)
        
ControlSend("4Story_GSP",""0"{Z}")
        
Sleep(250)
        
ControlSend("4Story_GSP",""0"{X}")
        
Sleep(250)
        
ControlSend("4Story_GSP",""0"{Z}")
        
Sleep(250)
        
ControlSend("4Story_GSP",""0"{Y}")
        
ControlSend("4Story_GSP",""0"{Y}")
        
ControlSend("4Story_GSP",""0"{Y}")
        
ControlSend("4Story_GSP",""0"{Y}")
        
ControlSend("4Story_GSP","",0"{TAB}")
        
Sleep(250)
        
ControlSend("4Story_GSP",""0"{1}")
        
Sleep(1000)
        
ControlSend("4Story_GSP",""0"{X}")
        
Sleep(250)
        
ControlSend("4Story_GSP",""0"{Z}")
        
Sleep(250)
        
ControlSend("4Story_GSP",""0"{X}")
        
Sleep(250)
        
ControlSend("4Story_GSP",""0"{Z}")
        
Sleep(250)
        
ControlSend("4Story_GSP",""0"{X}")
        
Sleep(250)
        
ControlSend("4Story_GSP",""0"{Z}")
        
Sleep(250)
    
EndFunc 
Des alles soll er klicken aber ich brauche das in einer funktion weil ich das mit einer anderen funktion dan kombinieren will :=)
Italien...Donni is offline  
Old 08/03/2010, 16:05   #23
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Ist ja nicht sonderlich viel.


Die "{}" darfst du aber nur um TAB setzen.
KDeluxe is offline  
Old 08/03/2010, 16:14   #24
 
elite*gold: 0
Join Date: Sep 2009
Posts: 531
Received Thanks: 1,775
brauch ich da alle 3 dateien und danke:=)
Italien...Donni is offline  
Old 08/03/2010, 16:18   #25
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Nur die "PostMessage.au3", das Beispiel ist wie der Dateiname verrät nur ein Beispiel und
die "****" Datei ist nur wegen den 50 kb dabei (uploaded Punkte).

Einfach in dein AutoIt\Include Ordner packen und per "#include <PostMessage.au3>" einbinden.
KDeluxe is offline  
Old 08/03/2010, 16:24   #26
 
HardCore.1337's Avatar
 
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
Du weißt aber, das ControlSend auch nur auf PostMessage arbeitet.
Demnach dürften keine anderen Ergebnisse zu erwarten sein.
HardCore.1337 is offline  
Old 08/03/2010, 16:24   #27
 
elite*gold: 0
Join Date: Sep 2009
Posts: 531
Received Thanks: 1,775
_PostMessage(WinGetHandle("4Story_GSP"), "{TAB}")

beim TAB so? und bei allen anderen nicht oder?


#Edit

Nun ignoriert er einfach die Sleeps also klickt einfach drauf hin-.- hab iich alles richtig gemacht?

PHP Code:
Func _1()
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "{TAB}")
        
Sleep(50)
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "{TAB}")
        
Sleep(50)
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "{TAB}")
        
Sleep(50)
        
_PostMessage(WinGetHandle("4Story_GSP"), "{TAB}")
        
Sleep(400)
        
_PostMessage(WinGetHandle("4Story_GSP"), "1")
        
Sleep(1750)
        
_PostMessage(WinGetHandle("4Story_GSP"), "{TAB}")
        
Sleep(400)
        
_PostMessage(WinGetHandle("4Story_GSP"), "1")
        
Sleep(1750)
        
_PostMessage(WinGetHandle("4Story_GSP"), "{TAB}")
        
Sleep(400)
        
_PostMessage(WinGetHandle("4Story_GSP"), "1")
        
Sleep(1750)
        
_PostMessage(WinGetHandle("4Story_GSP"), "{TAB}")
        
Sleep(400)
        
_PostMessage(WinGetHandle("4Story_GSP"), "1")
        
Sleep (1750)
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "{TAB}")
        
Sleep(50)
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "{TAB}")
        
Sleep(50)
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "{TAB}")
        
Sleep(50)
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "{TAB}")
        
Sleep(250)
        
_PostMessage(WinGetHandle("4Story_GSP"), "1")
        
Sleep(1750)
        
_PostMessage(WinGetHandle("4Story_GSP"), "{TAB}")
        
Sleep(400)
        
_PostMessage(WinGetHandle("4Story_GSP"), "1")
        
Sleep (1750)
        
_PostMessage(WinGetHandle("4Story_GSP"), "X")
        
Sleep(250)
        
_PostMessage(WinGetHandle("4Story_GSP"), "Z")
        
Sleep(250)
        
_PostMessage(WinGetHandle("4Story_GSP"), "X")
        
Sleep(250)
        
_PostMessage(WingetHandle("4Story_GSP"), "Z")
        
Sleep(250)
        
_PostMessage(WinGetHandle("4Story_GSP"), "X")
        
Sleep(250)
        
_PostMessage(WinGetHandle("4Story_GSP"), "Z")
        
Sleep(250)
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "Y")
        
_PostMessage(WinGetHandle("4Story_GSP"), "{TAB}")
        
Sleep(250)
        
_PostMessage(WinGetHandle("4Story_GSP"), "1")
        
Sleep(1000)
        
_PostMessage(WinGetHandle("4Story_GSP"), "X")
        
Sleep(250)
        
_PostMessage(WinGetHandle("4Story_GSP"), "Z")
        
Sleep(250)
        
_PostMessage(WinGetHandle("4Story_GSP"), "X")
        
Sleep(250)
        
_PostMessage(WingetHandle("4Story_GSP"), "Z")
        
Sleep(250)
        
_PostMessage(WinGetHandle("4Story_GSP"), "X")
        
Sleep(250)
        
_PostMessage(WinGetHandle("4Story_GSP"), "Z")
        
Sleep(250)
    
EndFunc 
Italien...Donni is offline  
Old 08/03/2010, 17:04   #28
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Quote:
Originally Posted by HardCore.1337 View Post
Du weißt aber, das ControlSend auch nur auf PostMessage arbeitet.
Demnach dürften keine anderen Ergebnisse zu erwarten sein.
Stimmt nicht ganz. Das Ergebnis ist auch mehr als zufriedenstellend.

Quote:
Originally Posted by italien1995 View Post
_PostMessage(WinGetHandle("4Story_GSP"), "{TAB}")

beim TAB so? und bei allen anderen nicht oder?


#Edit

Nun ignoriert er einfach die Sleeps also klickt einfach drauf hin-.- hab iich alles richtig gemacht?
Wäre mir neu, dass AutoIt ohne weiteres Sleeps ignoriert. Ich hab das ganze
aber mal ein bisschen erweitert und einen zusätzlichen Parameter hinzugefügt.
Der neue Parameter hat die selbe Funktion wie die Option "SendKeyDownDelay".


Das Script an sich würde ich in etwa so machen:
PHP Code:
Func _1()
    
$WinHandle WinGetHandle("4Story_GSP")
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"{TAB}")
    
Sleep(50)
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"{TAB}")
    
Sleep(50)
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"{TAB}")
    
Sleep(50)
    
_PostMessage($WinHandle"{TAB}")
    
Sleep(400)
    
_PostMessage($WinHandle"1")
    
Sleep(1750)
    
_PostMessage($WinHandle"{TAB}")
    
Sleep(400)
    
_PostMessage($WinHandle"1")
    
Sleep(1750)
    
_PostMessage($WinHandle"{TAB}")
    
Sleep(400)
    
_PostMessage($WinHandle"1")
    
Sleep(1750)
    
_PostMessage($WinHandle"{TAB}")
    
Sleep(400)
    
_PostMessage($WinHandle"1")
    
Sleep (1750)
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"{TAB}")
    
Sleep(50)
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"{TAB}")
    
Sleep(50)
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"{TAB}")
    
Sleep(50)
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"{TAB}")
    
Sleep(250)
    
_PostMessage($WinHandle"1")
    
Sleep(1750)
    
_PostMessage($WinHandle"{TAB}")
    
Sleep(400)
    
_PostMessage($WinHandle"1")
    
Sleep (1750)
    
_PostMessage($WinHandle"X")
    
Sleep(250)
    
_PostMessage($WinHandle"Z")
    
Sleep(250)
    
_PostMessage($WinHandle"X")
    
Sleep(250)
    
_PostMessage($WinHandle"Z")
    
Sleep(250)
    
_PostMessage($WinHandle"X")
    
Sleep(250)
    
_PostMessage($WinHandle"Z")
    
Sleep(250)
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"Y")
    
_PostMessage($WinHandle"{TAB}")
    
Sleep(250)
    
_PostMessage($WinHandle"1")
    
Sleep(1000)
    
_PostMessage($WinHandle"X")
    
Sleep(250)
    
_PostMessage($WinHandle"Z")
    
Sleep(250)
    
_PostMessage($WinHandle"X")
    
Sleep(250)
    
_PostMessage($WinHandle"Z")
    
Sleep(250)
    
_PostMessage($WinHandle"X")
    
Sleep(250)
    
_PostMessage($WinHandle"Z")
    
Sleep(250)
EndFunc 
Vielleicht musst du den dritten Parameter aber erhöhen (Standard ist 5 ms).
Würde dann so aussehen:
PHP Code:
_PostMessage($WinHandle"{TAB}"250
KDeluxe is offline  
Old 08/03/2010, 17:17   #29
 
elite*gold: 0
Join Date: Sep 2009
Posts: 531
Received Thanks: 1,775
ich habe zwar keine ahung aber er ignoriert wirklich einfach die Sleeps aber der muss warten weil er die zeit brauhct um die mobs zu killen
Italien...Donni is offline  
Old 08/03/2010, 17:30   #30
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
Ich hab kein 4Story, habs aber bei LC getestet, bei mir funktioniert es auch, vielleicht solltest du die Sleeps erhöhen?
KDeluxe is offline  
Reply


Similar Threads Similar Threads
ControlSend
02/05/2010 - AutoIt - 10 Replies
Ich schreibe in Autohotkey (is ja fast das gleiche wie autoit) und möchte nun einen kleinen Bot für Metin schreiben bloß da es in Metin2 keine Controls gibt funktioniert der befehl ControlSend nicht. habe es schon so versucht: (die taste w soll gesendet werden) 1. Controlsend,,w,METIN2 2. Controlsend,ahk_parent,w,METIN2 3. Controlsend,METIN2,w,METIN2
controlsend
10/09/2009 - AutoIt - 21 Replies
hey leute ich wollt eigentlich nur wissen wie ich die controlid rauskirege.. ControlSend( "titel", "text", controlID<----dass will ich wissen, "string")
ControlSend
09/28/2009 - AutoIt - 4 Replies
HotKeySet ("E","test") Func test() ControlSend("World of Warcraft", "", 0, "{ENTER}") Sleep (100) ControlSend("World of Warcraft", "Text", 0, "{ENTER}") EndFunc While 1 Sleep (100)
Controlsend
01/01/2009 - GW Exploits, Hacks, Bots, Tools & Macros - 4 Replies
Hiho, ich würde gerne wissen, ob es eine Möglichkeit gibt den Slash bzw "^" als String und nicht als Strg-Druck an ein Fenster via Controlsend zu schicken. In meinem Script lass ich mir den String einer Inputbox in ne Variable schreiben und schick den dann an die GW-Fenster. Das geht Fehlerfrei, nur leider gehen Ausrufezeichen etc nicht mit Controlsend -.- Pls help me^^ ty im Voraus!
Controlsend ^ / !
12/30/2008 - Guild Wars - 9 Replies
Hiho, ich hatte im Botbereich schon gefragt,aber da war iwas mit No Questions. Hier fragen jedenfalls auch Leute und deshalb stell ich die Frage hier: Ich habe mir ein Tool gebaut, was einen String, der von einem GUIinput in einer Variable geschrieben wurde, an x-beliebig viele GW-Fenster über Controlsend sendet. -soweit funktionierts- Nur leider geht dabei weder Capslock, noch die Zeichen ^ / ! (da sie in Autoit ja andere Funktionen haben). Ist es möglich, diese trotzdem per Controlsend...



All times are GMT +1. The time now is 20:35.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

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