|
You last visited: Today at 00:35
Advertisement
Control Send = ich verstehs nicht
Discussion on Control Send = ich verstehs nicht within the GW Bots forum part of the Guild Wars category.
08/02/2009, 19:14
|
#1
|
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
|
Control Send = ich verstehs nicht
Hallo, wie einige wissen arbeite ich zurzeit an meinen TQ Farm Bot.
Der eigentliche Bot ist fertig, doch nun will ich auch das fenster minimieren wollen, damit ich nebei auch noch andere Games zocken/Internet surfen kann.
Nur mein problem: Irgendwie geht gar nix.
Hab mir mal nen kleinen testscript angelegt um damit zu üben.
PHP Code:
$client = ("Guild Wars")
;Bisschen zeit lassen, damit ich GW öffnn kann sleep(8000)
;Test Script beginnen WinSetState($client, "", @SW_HIDE) ;Fenster verkleinern sleep(1000) ControlSend($client, "", "", "o", 1) ;In dem prozess "Guild Wars" o drücken ControlSend($client, "", "", "{Space}", 1) ;" Leertaste drücken sleep (12000) WinSetState($client, "", @SW_SHOW ); fenster wieder vergrößern um Ergebnis zu überprüfen
Also, das verkleinern und vergrößern geht. Aber die Tastendrücke funktionieren gar nicht. Weder wird O noch leer gedrückt. Das einzige was offen war, war die gruppensuche.
Und dann nochwas. Wenn es mal funktioniert, kann ich Controlsend dann überall in meinen jetigen Code einfügen? Also aus
PHP Code:
... send ("1") sleep($ZA) send ("{Space}") ...
wird dann..?
PHP Code:
Controlsend ("Guild Wars", "", "", "1", 1) sleep ($ZA) Controlsend ("Guild Wars", "", "", "{Space}", 1)
Außerdem weiß ich nicht wie ich /resign eingeben soll...
/resign so geht ja nicht.
Und wenn ich es folgendermaßen mache gehts auch nicht
PHP Code:
ControlSend($client, "", "", "+7") sleep(500) ControlSend($client, "", "", "resign")
Er erkennt irgendwie das "/" nicht. Muss ja theoretisch Umaschalt + 7 drücken.
P.S. hab ich gelesen...funktioniert aber nicht
Markus
|
|
|
08/02/2009, 21:57
|
#2
|
elite*gold: 0
Join Date: Jan 2009
Posts: 388
Received Thanks: 113
|
Minimieren is nich, nur im Hintergrund haben.
Sonst, schau dir mal Opt MouseClickDelay und Opt SendKeyDelay und den ganzen Spaß an.
|
|
|
08/02/2009, 22:08
|
#3
|
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
|
ne, oder`?
geht das sonst gar nicht?
|
|
|
08/03/2009, 00:49
|
#4
|
elite*gold: 0
Join Date: Jan 2009
Posts: 388
Received Thanks: 113
|
Quote:
Originally Posted by General Desert
ne, oder`?
geht das sonst gar nicht?
|
Fenster kann versteckt sein, es darf aber nich minimiert sein
|
|
|
08/03/2009, 09:23
|
#5
|
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
|
Mit welchem befehl kann ich es verstecken?
Ach und dann nochwas. Wenn es "minimiert" ist, klappt ControlClick nicht
PHP Code:
ControlClick($client, "", "", "left", 1, 827, 545)
Da pssiert rein gar nix
|
|
|
08/03/2009, 15:02
|
#6
|
elite*gold: 0
Join Date: Jan 2009
Posts: 388
Received Thanks: 113
|
Quote:
Originally Posted by Rosemarie Lein
Fenster kann versteckt sein, es darf aber nich minimiert sein
|
Quote:
Originally Posted by General Desert
Wenn es "minimiert" ist, klappt ControlClick nicht
|
^^
Quote:
Originally Posted by General Desert
Mit welchem befehl kann ich es verstecken?
|
Quote:
Originally Posted by General Desert
PHP Code:
WinSetState($client, "", @SW_HIDE)
|
|
|
|
08/03/2009, 15:48
|
#7
|
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
|
OK, ich habs jetzt so
PHP Code:
HotKeySet("{NUMPADSUB}", "_mini") HotKeySet("{NUMPADADD}", "_maxi")
...
Func _mini() $client = WinGetTitle ( "", "") Sleep(50) WinSetState($client, "", @SW_HIDE ) EndFunc
Func _maxi() WinSetState($client, "", @SW_SHOW )
If WinActive($client) Then Else WinActivate($client) EndIf EndFunc
Das geht ja noch alles.(Fenster wird jetzt versteckt oder?)
Aber jetzt
PHP Code:
;Zurück sleep(3000) ControlSend($client, "", "", "{Enter}", 0) ControlSend ($client, "", "", "{Up}", 0) ControlSend($client, "", "", "{Enter}", 0) sleep(2000)
;Resign Button drücken sleep(1500) ControlClick($client, "", "", "left", 1, 827, 545) sleep(3000)
Resign eingeben geht auch noch, aber die maus wandert einfach nicht auf den Button
|
|
|
08/03/2009, 17:02
|
#8
|
elite*gold: 0
Join Date: Apr 2008
Posts: 603
Received Thanks: 94
|
ControlClick($client, "", "", "left", 1, 827, 545) ist etwas buggy leider du solltest da mal nach _MouseClickPlus suchen damit kannst du alles ansprechen und klicken
|
|
|
08/03/2009, 18:01
|
#9
|
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
|
guck dir mal den tread an: "
|
|
|
08/08/2009, 23:01
|
#10
|
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
|
Gut, die Texteingaben hab ich. Nur da ControlClick nicht richtig geht, hab ich mal bischen gegoogelt und bin auf den Link gestoßen.
Die dll hab ich runtergeladen und wollte sie gleichmal testen. Nur leider komm ich mit dem Aufruf mit dll nicht wirklich klar. kann mir jmd helfen pls?
mein Code:
PHP Code:
Func Maus () DllCall("Functions.dll","int","fnSetCursorPos","int", 1400, "int", 1200) EndFunc ;Maus bewegen WinWaitActive ("Guild Wars1") sleep (3000) Maus () sleep(5000)
Tut sich leider gar nix.
Laut der Hilfe muss sie aber so ähnlich aufgerufen werden.
PHP Code:
$Fenster = WinGetHandle("Guild Wars") $X = 300 $Y = 200 $LPARAM = _MakeLong(300,200) DllCall("Functions.dll","int","fnSetCursorPos","in t", 300, "int", 200)
|
|
|
08/10/2009, 17:15
|
#11
|
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
|
keiner ne idee?
|
|
|
08/10/2009, 21:02
|
#12
|
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,283
|
Deine Lösung:
Code:
Opt('SendKeyDelay', 150)
Opt('SendKeyDownDelay', 150)
$hwnd = WinGetHandle('Guild Wars')
WinSetState($hwnd, "", @SW_HIDE)
Sleep(1000)
ControlSend($hwnd, "", "", "{enter}" & "hello")
Sleep(1000)
WinSetState($hwnd, "", @SW_SHOW)
Allerdings erzeugt ControlSend nach einiger Zeit einen Stackoverflow, was zu Problemen (sehr nervig!) mit der Shift-Taste führt.
Darum empfehle ich dir meine Funktion dafür zu verwenden.
Code:
#include <WindowsConstants.au3>
; #FUNCTION# ====================================================================================================================
; Name...........: SimulKey
; Description ...: Simulate a Key-Send to a specified handle in the Background
; Author ........: Felix Lehmann
; Modified.......: If you modify this Script, please enter your name here
; Remarks .......: -
; Related .......: -
; Parameters ....: $hwnd = Specified Window to Send to
; ...............: $key = Key or String to Send (If String $string have to be enabled [see $string])
; ...............: $string = Set this to 1 If your "$key" is a string
; ...............: $state = Set this to 'up' or 'down' if u want a special event | Default is press the Key 1 Time
; ...............: $delay = The delay to hold the key down
; Return Values .: 1 = Done | -1 = Couldn't load user32.dll
; Link ..........; -
; ===============================================================================================================================
Func SimulKey($hWnd, $key, $string = 0, $state = 'skip', $delay = 10)
;//Open DLL (user32)
$user32 = DllOpen('user32.dll')
If $user32 = -1 Then
SetError(-1, 1, -1)
EndIf
;//Handle Special Keys
Switch StringLower($key)
Case 'enter'
$WM_ENTER = 0x0d
$dCall = DllCall($user32, 'int', "MapVirtualKey", 'int', $WM_ENTER, 'int', 0)
$lParam = BitOR(BitShift($dCall[0], -16), 1)
Case 'space'
$WM_SPACE = 0x20
$dCall = DllCall($user32, 'int', "MapVirtualKey", 'int', $WM_SPACE, 'int', 0)
$lParam = BitOR(BitShift($dCall[0], -16), 1)
Case 'tab'
$WM_TAB = 0x09
$dCall = DllCall($user32, 'int', "MapVirtualKey", 'int', $WM_TAB, 'int', 0)
$lParam = BitOR(BitShift($dCall[0], -16), 1)
;//Handle Standard Keys
Case Else
;//Stringmode 1
If $string = 1 Then
$split = StringSplit($key, "")
For $ctn = 1 To $split[0]
$split[$ctn] = Asc(StringLower($split[$ctn]))
Next
For $ctn = 1 To $split[0]
$dCall = DllCall($user32, 'int', "VkKeyScan", 'int', $split[$ctn])
$lParamAsc = DllCall($user32, 'int', "MapVirtualKey", 'int', $dCall[0], 'int', 0)
$lParam = BitOR(BitShift($lParamAsc[0], -16), 1)
$lUpParam = BitOR($lParam, 0xC0000000)
DllCall($user32, 'int', "PostMessage", 'hwnd', $hWnd, 'int', $WM_KEYDOWN, 'int', $dCall[0], 'int', $lParam)
Sleep($delay)
DllCall($user32, 'int', "PostMessage", 'hwnd', $hWnd, 'int', $WM_KEYUP, 'int', $dCall[0], 'int', $lUpParam)
Sleep(10)
Next
;//Stringmode 0
ElseIf $string = 0 Then
$key = Asc(StringLower($key))
$dCall = DllCall($user32, 'int', "VkKeyScan", 'int', $key)
$lParamAsc = DllCall($user32, 'int', "MapVirtualKey", 'int', $dCall[0], 'int', 0)
$lParam = BitOR(BitShift($lParamAsc[0], -16), 1)
EndIf
EndSwitch
$lUpParam = BitOR($lParam, 0xC0000000)
If $string = 0 Then
Switch StringLower($state)
Case 'skip'
DllCall($user32, 'int', "PostMessage", 'hwnd', $hWnd, 'int', $WM_KEYDOWN, 'int', $dCall[0], 'int', $lParam)
Sleep($delay)
DllCall($user32, 'int', "PostMessage", 'hwnd', $hWnd, 'int', $WM_KEYUP, 'int', $dCall[0], 'int', $lUpParam)
Case 'down'
DllCall($user32, "int", "PostMessage", "hwnd", $hWnd, "int", $WM_KEYDOWN, "int", $dCall[0], "int", $lParam)
Case 'up'
DllCall($user32, "int", "PostMessage", "hwnd", $hWnd, "int", $WM_KEYUP, "int", $dCall[0], "int", $lParam)
EndSwitch
EndIf
DllClose($user32)
Return 1
EndFunc ;==>SimulKey
Und noch ein passendes Beispiel zur verwendung wie du das ganze von oben mit Simulkey lösen kannst.
Code:
;/Wichtig
#include <WindowsConstants.au3>
$hwnd = WinGetHandle('Guild Wars')
WinSetState($hwnd, "", @SW_HIDE)
SimulKey($hwnd, 'enter')
Sleep(1000)
SimulKey($hwnd, 'hello', 1, 'skip', 100)
WinSetState($hwnd, "", @SW_SHOW)
Resignansatz ohne "/":
Code:
;/Wichtig
#include <WindowsConstants.au3>
$hwnd = WinGetHandle('Guild Wars')
SimulKey($hwnd, '-resign', 1, 'skip', 100)
Sleep(100)
SimulKey($hwnd, 'enter')
|
|
|
10/21/2009, 19:51
|
#13
|
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
|
Sry das ich nochma Anfange mit dem thema...
ich habe jetzt alles probiert.
-- ControlClic
-- MouseClick Plus
-- tt6
und alles mit zeitverzögerung. und ja, ich habe das fenster nicht minimiert sondern versteckt (@SW_HIDE)
Das klappt aber alles nicht. Hab mir jetzt extra Windows XP wegen 32Bit wieder draufgemacht. Ich könnte heulen
Hat jmd einen beispiel Script oder so??
mfg
markus
|
|
|
10/21/2009, 19:57
|
#14
|
elite*gold: 20
Join Date: Oct 2008
Posts: 1,835
Received Thanks: 1,638
|
Nehm Mousesend aus der tt6.
|
|
|
10/21/2009, 19:59
|
#15
|
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
|
Funkt ja nicht
so ne kacke mit dem ControlSend^^
langsam ni mehr lustig
|
|
|
|
|
Similar Threads
|
Wieso funzt ControlSend & _KeySend nicht? aber Send ..^^?
03/09/2011 - AutoIt - 10 Replies
Ich bin relativ neu in autoit ^^ also noch ein "noob"
aber ich wollte ein einfachen bot machen der "TAB" drückt (damit wählt man im spiel das monster aus) dann "xx" ms das monster attackd undso weiter... wenn ich send benutzte funzt das soweit auch aber wenn ich ControlSend benutze macht er einfach nix ... habe mich mal bissl umgeschaut und habe die func _KeySend gefunden damit funzt es auch nicht hier mein code ... ich weiß ist unübersichtlich und noobig :p
Mein "Bot" -
#include...
|
Auto Login mit Control Send
09/14/2010 - AutoIt - 8 Replies
Hi
Ich wollte mich mal ein wenig an die Befehle ControlSend, ControlClick etc. herantasten. Ich hab nun mal ein Script geschrieben, das mich automatisch einloggen soll wenn das Guild Wars Fenster existiert. Leider passiert einfach gar nichts... Wollte mal fragen was das Problem sein könnte.
Hier der Code:
$hWnd= "Guild Wars"
WinWait ("$hWnd")
Sleep (5000)
ControlSend($hWnd,"",""," ;
PASSWORT")
Sleep (1000, 2000)
|
Control Send...
05/07/2010 - AutoIt - 7 Replies
Hi zusammen,
ich möchte gerne bei meinem Script ControlSend benutzen und das läuft ja nach diesem:
ControlSend ( "title", "text", controlID, "string" )
Schema ab. Jetzt stellt sich mir die Frage, was ich wenn ich das ans LC fenster schicken muss bei controlID eintragen muss kann mir da jemand vlt weiterhelfen?
LG
|
Control Center for Admin Easy to Control all
10/16/2009 - MapleStory - 2 Replies
Credits go to ucyc for making this nice programm
http://www.pictureupload.de/originals/pictures/15 1009164127_2.jpg
http://www.pictureupload.de/originals/pictures/15 1009164303_3.jpg
Download
Click here
|
wtf controlclick/send kommtm manchmal nicht an was tun??
10/26/2008 - Guild Wars - 11 Replies
Ja ich hab das Problem das ich grad bei meinem HFFF bot den ich im Hintergrund laufen lassen will mit controlclick die klicks machen will und mit controlsend halt des zeug mit den tasten aber manchmal kommen irgendwie nicht alle klicks an=(
danke schon mal im Vorraus:handsdown:
|
All times are GMT +2. The time now is 00:35.
|
|