|
You last visited: Today at 16:05
Advertisement
Makro löst keine Hotkeys aus
Discussion on Makro löst keine Hotkeys aus within the General Coding forum part of the Coders Den category.
08/22/2007, 20:06
|
#1
|
elite*gold: 0
Join Date: Oct 2005
Posts: 2,485
Received Thanks: 215
|
Makro löst keine Hotkeys aus
Hallo,
bin gerade dabei, meine alten au3 makros in C++ umzuschreiben. Die Funktionen stehen auch schon alle, aber das ist nicht das Problem. Ich benutze die keybd_event methode. Wenn ich zB den Tastendruck von der 8 simuliere, wird nicht der Hotkey ausgelöst, der auf 8 liegt, nämlich das benutzen einer fähigkeit. Im Chat oder innem Textdokument wird die 8 auch reingeschrieben, aber das digitale drücken einer taste löst eben keine hotkeys aus, you know.
Liegt das vll daran, dass die Funktion veraltet sein soll?
|
|
|
08/22/2007, 20:29
|
#2
|
elite*gold: 0
Join Date: Aug 2004
Posts: 106
Received Thanks: 7
|
guck dir mal
an, vielleicht hilft dir das weiter
|
|
|
08/22/2007, 21:27
|
#3
|
elite*gold: 0
Join Date: Oct 2005
Posts: 2,485
Received Thanks: 215
|
Heisst das ich sollte die SendInput funktion verwenden? Wenn ich das so richtig verstanden habe, gibts eine Möglichkeit, Tasteninputs an mehrere Fenster gleichzeitig zu senden.. Auch wenn sie nicht aktiv sind. Ist ja prinzipiell hoch interessant, doof nur dass die au3 Funktion die ich damals verwenden wollte nicht ausreichend funktioniert.
|
|
|
08/23/2007, 04:04
|
#4
|
elite*gold: 0
Join Date: Aug 2004
Posts: 106
Received Thanks: 7
|
Also SendInput solltest du keybd_event bevorzugen, weil keybd_event überholt ist.
Um einen Tastendruck an mehrere Fenster gleichzeitig zu senden, kannst du dir mal anschauen, ich hab gehört damit soll das gehen.
|
|
|
08/23/2007, 13:38
|
#5
|
elite*gold: 0
Join Date: Oct 2005
Posts: 2,485
Received Thanks: 215
|
Quote:
Originally Posted by pengpong
Also SendInput solltest du keybd_event bevorzugen, weil keybd_event überholt ist.
Um einen Tastendruck an mehrere Fenster gleichzeitig zu senden, kannst du dir mal anschauen, ich hab gehört damit soll das gehen.
|
Schade, denn SendInput sieht so verdammt kompliziert aus
So hab mal den alten Code aufgegabelt:
Code:
//Wir wollen ein <Return> senden
KEYBDINPUT kip;
kip.wVk = VK_RETURN;
kip.wScan = NULL;
kip.dwFlags = NULL;
kip.time = 0;
INPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki = kip;
//Folgende Zeilen machen Probleme bei Lineage, sind aber dort auch nicht unbedingt nötig
//Wenn man das ganze mit z.B. Notepad testen möchte, braucht man sie allerdings....
//SetForegroundWindow(targetHWND);
//SetFocus(targetHWND);
SendInput(1,&ip,sizeof(INPUT));
Das sind die Sachen wo ich noch probleme habe, der rest mit InputAttach bla ist klar. Bin noch nicht so der Master in C++, aber KEYBDINPUT würd ich mal als Datenstruktur auffasen, das selbe mit IP. Allerdings sagen mir die Parameter von SendInput nichts, hier der MSDN Link:
|
|
|
08/23/2007, 14:24
|
#6
|
elite*gold: 0
Join Date: Aug 2004
Posts: 106
Received Thanks: 7
|
jo, du übergibst SendInput ein Struct das beliebig viele Sub-Structs hat. In unserem Fall aber nur ein Sub-Struct.
SendInput braucht dann als Parameter die Anzahl der gekapselten Sub-Strucs, das Input-Struct und die Größe des ganzen Gedöns.
Hier mal ein Beispiel, das eine Taste drückt, und dann wieder loslässt:
(Ich glaub da ist ein bug, weil input[0].type müsste eigentlich auch auf INPUT_KEYBOARD gesetzt werden)
Code:
int mykey;
INPUT input[2];
memset(input, 0, sizeof(input));
input[0].type = INPUT_KEYBOARD;
mykey=inputcode;
input[0].ki.wVk = mykey;
input[0].ki.dwFlags = 0;
input[0].ki.time = 0;
input[0].ki.dwExtraInfo = 0;
input[1].ki.wVk = mykey;
input[1].ki.dwFlags = KEYEVENTF_KEYUP;
input[1].ki.time = 0;
input[1].ki.dwExtraInfo = 0;
SendInput(2,input,sizeof(INPUT));
Interessant in der MSDN ist auch
|
|
|
08/23/2007, 14:36
|
#7
|
elite*gold: 0
Join Date: Oct 2005
Posts: 2,485
Received Thanks: 215
|
Saved my day, großen Dank auch
Ich hab den Compilerfehler schonmal gehabt, kann mich aber zum verrecken nicht dran erinnern wie ich den wegbekommen habe o.o
Fehlermeldung:
11 E:\Dev-Cpp\sendinputlol.cpp `INPUT' undeclared (first use this function)
11 E:\Dev-Cpp\sendinputlol.cpp expected `;' before "input"
12 E:\Dev-Cpp\sendinputlol.cpp `input' undeclared (first use this function)
13 E:\Dev-Cpp\sendinputlol.cpp `INPUT_KEYBOARD' undeclared (first use this function) 15 E:\Dev-Cpp\sendinputlol.cpp `inputcode' undeclared (first use this function)
27 E:\Dev-Cpp\sendinputlol.cpp `SendInput' undeclared (first use this function)
Die ganze Palette eben ..
|
|
|
08/23/2007, 19:01
|
#8
|
elite*gold: 0
Join Date: Aug 2004
Posts: 106
Received Thanks: 7
|
probier's mal mit
#define _WIN32_WINNT 0x0501
bevor du die windows.h includest
|
|
|
08/23/2007, 21:43
|
#9
|
elite*gold: 0
Join Date: Oct 2005
Posts: 2,485
Received Thanks: 215
|
Die Funktion tut zwar ihren Dienst, aber bringt leider nichts für Guild Wars. Hab mal in den AutoIt Foren gefragt, wie die au3 Send("string") Funktion funktioniert. Hoffe die könnens mir verraten :P
|
|
|
08/27/2007, 14:15
|
#10
|
elite*gold: 0
Join Date: Mar 2007
Posts: 567
Received Thanks: 48
|
Hmm, scgau mal, der Source von AutoHotKey is auf auf der Seite, schau dir mal dort vl das an, da ich glaube, dass es imgrunde fast das gleiche ist!
Ganfi
|
|
|
08/29/2007, 02:58
|
#11
|
elite*gold: 0
Join Date: May 2005
Posts: 232
Received Thanks: 52
|
probier mal den scancode noch zuzuweisen... hatte mal eine ältere anwendung die ohne scancodes einfach nicht korrekt die keys annehmen wollte.
evtl. bringt dich ja mein alter (sorry nur delphi) code noch auf die richtige fährte, der weg sollte auf jeden fall der richtige sein
|
|
|
08/29/2007, 07:50
|
#12
|
elite*gold: 0
Join Date: Oct 2005
Posts: 2,485
Received Thanks: 215
|
Okay. Also ich muss nen Hardwarescan machen, werd mir mal anschauen wies geht, könnte sein dass ich kleine Tipps brauche
Danke für den Code, schau ihn mir heute mittag an.
|
|
|
|
Similar Threads
|
wo löst man walliecard ein??
03/31/2010 - WarRock - 3 Replies
?
|
[Makro]Suche Tastatur+Maus Makro
12/09/2009 - Metin2 Private Server - 6 Replies
Hallo zusammen
Ich suche ein Makro wo ich etwas z.B in der DB
schnell nacheinander löschen kann immer das gleiche.
z.B
1. dmg 340 - 3400
hier z.B wenn alle sowären immer das von 3400 das --->0 wegnehmen.
|
Wer löst das capcha
08/30/2009 - Metin2 Private Server - 1 Replies
bitte das apvcha lösen =DD habe es nicht geschafft thx natürlich =D
wie lade ich das cpcha hoch
?http://www.************/wtauthcode.php (leerstelle )
|
wer löst mein captcha
08/10/2009 - Metin2 Private Server - 9 Replies
wer löst mein captcha wer mir helfen will der schreibt mir pls bei icq an .... 467032805.... ich bekomm das nicht hin hab schon 2 zeichen.. gefunden.....
|
makro durch makro auslösen
05/21/2007 - World of Warcraft - 3 Replies
also das problem ist folgendes ein makro kann max 255 zeichen haben ich brauche jedoch eines mit 350 stellen und jetzt wolt ich fragen ob es möglich ist in dem eersten makro, makro1 /cast makro2 oder so ähnlich zu machen oder ob es möglich ist auf eine taste 2 casts zu lgen oder so etwas ähnliches so das sich beide makros gleichzeitig auslösen
|
All times are GMT +2. The time now is 16:05.
|
|