|
You last visited: Today at 01:18
Advertisement
Problem mit KeySend
Discussion on Problem mit KeySend within the AutoIt forum part of the Coders Den category.
07/19/2010, 10:56
|
#1
|
elite*gold: 0
Join Date: Mar 2010
Posts: 77
Received Thanks: 26
|
Problem mit KeySend
Hey Leute ich habe einen Prob mit meinem Bot.
Er soll Tastendrücke an Metin2 senden. Dafür benötigt man ja die KeySend.au3 und .dll
Hier einmal die KeySend.au3:
PHP Code:
;=====================================================================
;Funktion: SendKey
;Autor: General Desert
;
;Website: www.elitepvpers.de
;OS: XP, VISTA, 7
;Sprache: Deutsch
;=====================================================================
#region Info
;=====================================================================
;Funktion: SendKey
;Beschreibung: Sendet einen Tastaturdruck an ein verstecktes Fenster.
; Dabei funktionieren auch Anwendungen die mit einem
; Anti-Cheat Schutz ausgestattet sind.
;Parameter: _SendKey($Handle, $Key, $SpecialKey)
; $Handle: Handle des Programmes. Zu bekommen durch WinGetProcess
; Key: Taste die gedrückt werden soll
; SpecialKey: Shift Taste oder Alt Taste einbinden (True/False)
;======================================================================
#EndRegion
Func _SendKey($Handle, $Key)
Local $Dll = DllOpen("KeySend.dll")
$Result = DllCall($Dll, "HWnd", "GetHandle", "Str", $Handle)
DllCall($Dll, "none", "SendKeyHwnd", "Hwnd", $Result, "str", $Key)
EndFunc
Ich habe auch schon die au3 und dll in den Include Ordner kopiert und in dem Ordner meines Scriptes die dll.
Wenn ich nun de Bot starte, macht er nix^^
Damit nicht jeder meinen Bot klaut, füge ich hier mal nicht die GUI ein^^
Der (halbe) Bot:
PHP Code:
$zahl = 0
$zahl2 = 0
$zahl3 = 0
$zahl4 = 0
#include <GUIConstants.au3>
#include <KeySend.au3>
;Hier wäre die Gui mit 15 Label, 8 Button und 5 Inputboxen
$PID = WinGetProcess ("METIN2")
$test = ProcessExists ($PID)
If $test = False Then
MsgBox (0, "Metin2 starten", "Bitte starten sie Metin2!")
EndIf
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
Do
$zahl = $zahl + 1
$PID = WinGetProcess ("METIN2")
_SendKey ($PID, "^")
Sleep (500)
Until $zahl = - 1
Case $Button2
$zahl = - 1
Case $Button3
Do
$zahl2 = $zahl2 + 1
$PID = WinGetProcess ("METIN2")
_SendKey ($PID, " ")
Sleep (200)
Until $zahl2 = - 1
Case $Button4
$zahl2 = - 1
Case $Button5
Do
$zahl3 = $zahl3 + 1
$PID = WinGetProcess ("METIN2")
_SendKey ($PID, $Input3)
Sleep (3500)
_SendKey ($PID, $Input4)
Sleep (3500)
_SendKey ($PID, $Input5)
Sleep (30000)
Until $zahl3 = - 1
Case $Button6
$zahl3 = - 1
Case $Button7
Do
$zahl4 = $zahl4 + 1
$PID = WinGetProcess ("METIN2")
_SendKey ($PID, $Input1)
_SendKey ($PID, $Input2)
Sleep (250)
Until $zahl4 = - 1
Case $Button8
$zahl4 = - 1
EndSwitch
WEnd
mfg, H1rnt0t7
|
|
|
07/19/2010, 13:20
|
#2
|
elite*gold: 0
Join Date: Mar 2008
Posts: 1,524
Received Thanks: 285
|
die klammern müssen immer an den befehl drann! -.-
außerdem reicht einmal
Global $PID = WinGetProcess("METIN2")
ich weiß garnicht wer immer auf die idee mit der leerzeile gekommen ist
|
|
|
07/19/2010, 16:13
|
#3
|
elite*gold: 100
Join Date: Oct 2007
Posts: 738
Received Thanks: 485
|
Das mit der Klammer stimmt nicht.
Es wird trotzdem richtig kompiliert.
@Topic:
Hast du schon einmal den PID gecheckt, oder die dll bei einem anderen Programm probiert?
|
|
|
07/19/2010, 16:56
|
#4
|
elite*gold: 0
Join Date: Mar 2008
Posts: 1,524
Received Thanks: 285
|
die dll stimmt, aber die pid nicht
|
|
|
07/19/2010, 20:21
|
#5
|
elite*gold: 0
Join Date: Sep 2008
Posts: 257
Received Thanks: 185
|
und wie kann man die pid herausfinden?
|
|
|
07/19/2010, 21:44
|
#6
|
elite*gold: 2
Join Date: Mar 2008
Posts: 1,778
Received Thanks: 1,222
|
ProcessExists oder mit Run das Programm ausführen.
|
|
|
07/19/2010, 22:01
|
#7
|
elite*gold: 0
Join Date: Mar 2008
Posts: 1,524
Received Thanks: 285
|
geh in taskmanager und schau da, dürfte METIN2.exe oder metin2client.bin sein
|
|
|
07/20/2010, 18:10
|
#8
|
elite*gold: 0
Join Date: Sep 2008
Posts: 257
Received Thanks: 185
|
Quote:
Originally Posted by bladerofdarknes
geh in taskmanager und schau da, dürfte METIN2.exe oder metin2client.bin sein
|
muss man es dann ohne "$PID = WinGetProcess ("METIN2")" machen oder was muss ich dann hinschreiben?
könnte mal jemand die funktion hinschreiben wenn ich einfach z.b. ein "a" drücken möchte?
|
|
|
07/20/2010, 19:48
|
#9
|
elite*gold: 0
Join Date: Mar 2008
Posts: 1,524
Received Thanks: 285
|
$PID = WinGetProcess("METIN2")
musste einmal machen
|
|
|
07/20/2010, 20:41
|
#10
|
elite*gold: 0
Join Date: Sep 2008
Posts: 257
Received Thanks: 185
|
ok danke... funktioniert bei mir aber trotzdem nicht...
folgendes steht in meinem script:
#include <KeySend.au3>
$PID = WinGetProcess("METIN2")
Sleep(5000)
_SendKey($PID, "^h")
aber wenn ich es ausführe passiert einfach garnichts im metin fenster...jemand eine idee?
achja das "^h" ist ja STRG+h und das simuliert das absteigen/aufsteigen vom pferd
|
|
|
07/21/2010, 12:56
|
#11
|
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
|
^h gibts nicht bei der keySend Engine
|
|
|
07/21/2010, 13:02
|
#12
|
elite*gold: 0
Join Date: Mar 2008
Posts: 1,524
Received Thanks: 285
|
hast du überhaupt im taskmanager geschaut?
denn für metin2.de heißt es metin2client.bin
|
|
|
07/21/2010, 13:05
|
#13
|
elite*gold: 0
Join Date: Sep 2008
Posts: 257
Received Thanks: 185
|
Quote:
Originally Posted by HardCore.1337
^h gibts nicht bei der keySend Engine
|
ok sry wusst ich nich aber wie kann ich dann STRG+H machen?
Quote:
hast du überhaupt im taskmanager geschaut?
denn für metin2.de heißt es metin2client.bin
|
wie meinst du das?^^
was muss ich verändern?
sry bin ein autoit noob^^
|
|
|
07/21/2010, 13:12
|
#14
|
elite*gold: 0
Join Date: Mar 2008
Posts: 1,524
Received Thanks: 285
|
#include <KeySend.au3>
$PID = WinGetProcess("metin2client.bin")
Sleep(5000)
_SendKey($PID, "^h")
|
|
|
07/21/2010, 13:23
|
#15
|
elite*gold: 0
Join Date: Sep 2008
Posts: 257
Received Thanks: 185
|
also als aller erstes mal danke für deine unterstützung,
aber ich habe genau das eingefügt was du geschrieben hast (nur das ^h abgeändert weil hardcore ja gemeint hat das gibts nicht) und es passiert trotzdem einfach nichts 
hat vielleicht noch jemand ideen?
|
|
|
Similar Threads
|
C# Keysend und Backgroundworker
03/08/2010 - .NET Languages - 3 Replies
Hi hab da ein Problem.
Kann es sein das der Befehl SendKeys innerhalb eines Backroundworkers nicht ausgeführt werden kann bzw der Befehl nicht an das aktive fenster sondern an den mainthread geschickt werden????
Bzw hat jemand eine Lösung wie man das umgehen kann das SendKeys an das richtige Fenster die Tastenanschläge schick???
EDIT:
Der Code der dananch ausgeführt werden soll wird auch nicht ausgeführt.
while (Run1.Break == false)
|
[Problem] Problem with server starting - cannot find quest index for PaxHeader
12/22/2009 - Metin2 Private Server - 1 Replies
Hello!
I have this same problem as here when i'm starting my server:
http://www.elitepvpers.com/forum/metin2-pserver-di scussions-questions/307143-metin2-serverfiles-ques t-index-fehler.html
But I didn't know the answer.. how to repair this?
Greetings
|
All times are GMT +1. The time now is 01:18.
|
|