|
You last visited: Today at 23:48
Advertisement
AutoIT Send key´s to minimierten Window
Discussion on AutoIT Send key´s to minimierten Window within the AutoIt forum part of the Coders Den category.
02/09/2016, 11:35
|
#1
|
elite*gold: 0
Join Date: Jan 2012
Posts: 195
Received Thanks: 19
|
AutoIT Send key´s to minimierten Window
Hallo liebe epvp com
Brauche dringend hilfe will ein BoT mache wie jeder andere
aber was ich will :
Wenn ich starte soll er z.B 4,y,{SPACE},q,e
an das fenster senden obwohl das fenster nicht sichtbar oder minimiert
ist habe es mit dem Code :
#RequireAdmin
Local $hWnd = WinGetHandle("Celestial World 2.0")
ProcessGetStats ("metin2client.bin")
while 1
ControlSend ( $hWnd, "", "", "{4}")
Opt("SendKeyDownDelay", 500)
Wend
Brauche hilfe dringend bin auch über Skype erreichbar : supermgking
|
|
|
02/09/2016, 11:41
|
#2
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Du kannst keine Tasten an minimierte Fenster senden da diese nicht gerendert werden. Du könntest aber versuchen sie außerhalb des Bildbereiches zu schieben und dann etwas dorthin zu senden.
|
|
|
02/09/2016, 11:45
|
#3
|
elite*gold: 0
Join Date: Jan 2012
Posts: 195
Received Thanks: 19
|
schade trotzdem danke für deine schnelle hilfe
kannst du mir sagen warum bei mir nicht pause und ende funktioniert?
#RequireAdmin
HotKeySet("p", "Pause") ; Bei drücken von "p" dann Pause
HotKeySet("x", "Ende") ;Bei drücken von "x" dann Ende
$Pause = 0
while 1
send ("q")
sleep ("1")
send ("{space}")
sleep ("1")
send ("q")
sleep ("1")
send ("y^")
sleep (1)
sleep (1)
send ("q")
sleep ("1")
send ("{space}")
sleep ("1")
send ("q")
sleep ("1")
send ("4")
sleep (1)
send ("q")
sleep ("1")
send ("{space}")
sleep ("1")
send ("q")
sleep ("1")
wend
|
|
|
02/09/2016, 11:54
|
#4
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Aus dem Grund weil du keine Funktionen definiert hast die Pause und Ende heißen.
|
|
|
02/09/2016, 11:58
|
#5
|
elite*gold: 0
Join Date: Jan 2012
Posts: 195
Received Thanks: 19
|
Also muss ich Func Pause
Func Ende so schreiben?
|
|
|
02/09/2016, 12:02
|
#6
|
dotCom
elite*gold: 9842
Join Date: Mar 2009
Posts: 16,841
Received Thanks: 4,675
|
Bei dir würde es Funktionieren wenn du p oder x gedrückt halten würdest, sofern die Funktionen existieren würden :3
Ich würde dir eher zu  raten.
Habe auf dem Mac kein AutoIt drauf, daher kann ich das leider nicht testen.
Sollte so oder so ähnlich klappen
Code:
#RequireAdmin
HotKeySet("p", "Pause")
HotKeySet("x", "Ende")
$pause = false;
AdlibRegister("start", 25) ; Jede 25ms wird die Funktion ausgeführt
While 1
sleep(250); wartet 250ms
WEnd
Func Pause()
If $pause = False Then ; Schaut ob die Funktion gestartet ist oder nicht
AdlibUnRegister("start") ; Funktion start wird hier pausiert
Else
AdlibRegister("start", 25) ; Jede 25ms wird die Funktion ausgeführt
EndIf
EndFunc
Func Ende()
AdlibUnRegister("start") ; siehe oben
Exit 0 ; Beendet dein Programm
EndFunc
Func start()
send ("q")
sleep ("1")
send ("{space}")
sleep ("1")
send ("q")
sleep ("1")
send ("y^")
sleep (1)
sleep (1)
send ("q")
sleep ("1")
send ("{space}")
sleep ("1")
send ("q")
sleep ("1")
send ("4")
sleep (1)
send ("q")
sleep ("1")
send ("{space}")
sleep ("1")
send ("q")
sleep ("1")
EndFunc
|
|
|
02/11/2016, 09:01
|
#7
|
elite*gold: 150
Join Date: Feb 2016
Posts: 602
Received Thanks: 62
|
Quote:
Originally Posted by Supermgking
Also muss ich Func Pause
Func Ende so schreiben?
|
wenn ich dir was vorschlagen darf:
mit visual basic (2010 und neuer) kannst du ganz einfach mit SendMessage Key´s an ein minimiertes Fenster schicken! 
C++ geht natürlich auch.. autoit weis ich ned ob SendMessage unterstützt
vb.net:
Code:
Imports System.Runtime.InteropServices
Code:
<Runtime.InteropServices.DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal msg As UInteger, ByVal wParam As Integer, ByVal lParam As Integer) As IntPtr
End Function
Code:
Dim p As Process = Process.GetProcessesByName("deinegameexe")(0) 'ohne .exe
SendMessage(p.MainWindowHandle, &H102, Asc("W"c), 0)
SendMessage(p.MainWindowHandle, &H102, Asc("A"c), 0)
SendMessage(p.MainWindowHandle, &H102, Asc("S"c), 0)
SendMessage(p.MainWindowHandle, &H102, Asc("D"c), 0)
|
|
|
02/11/2016, 13:23
|
#8
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
SendMessage gibts in AutoIt auch. Ich denke aber nicht das die Befehle vom Fenster entgegengenommen werden.
|
|
|
02/11/2016, 13:34
|
#9
|
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
|
Quote:
Originally Posted by BYTHEW4Y
wenn ich dir was vorschlagen darf:
mit visual basic (2010 und neuer) kannst du ganz einfach mit SendMessage Key´s an ein minimiertes Fenster schicken! 
C++ geht natürlich auch.. autoit weis ich ned ob SendMessage unterstützt
vb.net:
Code:
Imports System.Runtime.InteropServices
Code:
<Runtime.InteropServices.DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal msg As UInteger, ByVal wParam As Integer, ByVal lParam As Integer) As IntPtr
End Function
Code:
Dim p As Process = Process.GetProcessesByName("deinegameexe")(0) 'ohne .exe
SendMessage(p.MainWindowHandle, &H102, Asc("W"c), 0)
SendMessage(p.MainWindowHandle, &H102, Asc("A"c), 0)
SendMessage(p.MainWindowHandle, &H102, Asc("S"c), 0)
SendMessage(p.MainWindowHandle, &H102, Asc("D"c), 0)
|
Spiele arbeiten oftmals nicht mit der Windows Message Queue um Tastatureingaben zu verarbeiten, sondern nutzen meist z.B. DirectX, SDL, glut oder ähnliche Frameworks, welche direkt den Tastatur Puffer auslesen, da wird man mit SendMessage nicht weit kommen
|
|
|
02/11/2016, 13:46
|
#10
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Quote:
Originally Posted by warfley
Spiele arbeiten oftmals nicht mit der Windows Message Queue um Tastatureingaben zu verarbeiten, sondern nutzen meist z.B. DirectX, SDL, glut oder ähnliche Frameworks, welche direkt den Tastatur Puffer auslesen, da wird man mit SendMessage nicht weit kommen
|
Das hängt aber vom Spiel ab.
|
|
|
02/11/2016, 13:54
|
#11
|
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
|
Quote:
Originally Posted by alpines
Das hängt aber vom Spiel ab.
|
Darum steht da oftmals
|
|
|
02/11/2016, 14:02
|
#12
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Quote:
Originally Posted by warfley
Darum steht da oftmals 
|
Wollts nur nochmal gesagt haben
|
|
|
02/12/2016, 20:08
|
#13
|
elite*gold: 150
Join Date: Feb 2016
Posts: 602
Received Thanks: 62
|
SendInput sollte aber dann zu 80% funktionieren.. tut es zumindest bei mir
|
|
|
02/15/2016, 13:24
|
#14
|
elite*gold: 1810
Join Date: Jan 2012
Posts: 2,208
Received Thanks: 1,630
|
@TE, controlsend funktioniert auf den neuen metin2 binarys nicht mehr.
|
|
|
 |
Similar Threads
|
Autoit Send Second Window
03/01/2013 - Planetside - 2 Replies
Hey guys,
I have written a little script that switches between two PS2 game windows. Each window is a different faction. The two players are standing around a generator, and it goes back and fourth, one overloading a generator, and the other player stabilising the generator. In theory. The script just activates a window, sends the E key for 10 seconds, then switches to the other window and does it again. Over and over. However, only the one window registers the E press. So what happens, is...
|
How to send key on background window
09/26/2011 - General Coding - 3 Replies
Do you know how send key in a background window with autoit ?
I try WinActivate("4Story") but I can't do enything else...
|
Send and UseSkill to the not active window
07/04/2011 - PW Hacks, Bots, Cheats, Exploits - 3 Replies
how do it?
I can send to active window only.
I try to use autoit, but that did not work
Dim Au3 As New AutoItX3Lib.AutoItX3
Dim hWnd As Integer= FindWindow("ElementClient Window", Nothing)
Au3.ControlSend("", "", "", "{F1}")
I also tried using PostMessage,it does not work
Dim hWnd As Integer= FindWindow("ElementClient Window", Nothing)
|
Send Keys to minimized PW-Window
07/21/2010 - Perfect World - 3 Replies
I want to learn how to send keys to a PW-Window, but it is minimized (because of the other functions my prog has)..
i am programming in vb.net (i know.. not the best language but i am getting along with it quite good) so if anyone knows a simple function or can help me with this.. pls tell me :)
greetz
|
All times are GMT +1. The time now is 23:49.
|
|