Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 16:05

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

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.

Reply
 
Old   #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?
Term!nX is offline  
Old 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
pengpong is offline  
Old 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.
Term!nX is offline  
Old 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.
pengpong is offline  
Old 08/23/2007, 13:38   #5
 
elite*gold: 0
Join Date: Oct 2005
Posts: 2,485
Received Thanks: 215
Quote:
Originally Posted by pengpong View Post
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:
Term!nX is offline  
Old 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
pengpong is offline  
Thanks
1 User
Old 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 ..
Term!nX is offline  
Old 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
pengpong is offline  
Thanks
1 User
Old 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
Term!nX is offline  
Old 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
Ganf is offline  
Old 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

emjay is offline  
Thanks
1 User
Old 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.
Term!nX is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2024, 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 ©2024 elitepvpers All Rights Reserved.