Hi,
hat irgendwer Ahnung was für verschiedene Möglichkeiten es gibt Tastendrücke an ne andere Applikation zu testen?
Also, welche Funktionen werden von den ganzen Makro Tools benutzt?
Mich wundert es halt, dass GameGuard z.B. so tools wie Synergy oder das MakroTeil der G15 ignoriert, aber auf der anderen Seite funktioniert das N52 einwandfrei.
Da muss es also unterschiede geben....
jo, danke, das geht schonmal in die richtung, nach was ich gesucht habe =)
Wobei ich noch immer nach Wegen suche, das ganze 'tiefer' anzugehen...
Also auf ganz blöd sowas in Richtung Device Treiber, etc... (bin auch schon dran nen Atmel per USB als HID Interface anzuschließen o.O)
Originally posted by pengpong@Jul 23 2007, 01:59 jo, danke, das geht schonmal in die richtung, nach was ich gesucht habe =)
Wobei ich noch immer nach Wegen suche, das ganze 'tiefer' anzugehen...
Also auf ganz blöd sowas in Richtung Device Treiber, etc... (bin auch schon dran nen Atmel per USB als HID Interface anzuschließen o.O)
Klingt ja interessant, welche Hardware hast du genau vor zu verwenden ?
Mir fallen spontan SendInput, keybd_event und SendMessage ein.
Treiber programmierung ist nicht gerade eine meiner staerken, deswegen faellt mir dazu leider nichts ein.
Originally posted by mr.rattlz+Jul 23 2007, 12:50--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (mr.rattlz @ Jul 23 2007, 12:50)</td></tr><tr><td id='QUOTE'>Klingt ja interessant, welche Hardware hast du genau vor zu verwenden ?[/b]
es gibt für die Atmel Mikroprozessoren ein paar software only usb libraries, die den atmel über nur 2 pins an den usb port koppelt.
z.b. ->
Wenn man das ganze als HID zusammenbastelt, fällt auch die Treiberprogrammierung weg (-> für ne USB Tastatur hat Windows ja nen Treiber dabei...)
Das ist ein einfacher Schaltplan für ne 17-Tasten keyboard.
Wenn das Bild ein bisschen größer wäre, erkennt man folgendes:
links sind die ganzen Taster, auf der rechten Seite ist der ganze Rest.
Oben rechts ist ein 12Mhz Quartz (der Atmega8 der da verbaut ist, kann intern nur mit 1-8Mhz getaktet werden, mit nem externen Quartz bis zu 16, die USB Library von obdev benötigt entweder 12 oder 16Mhz)
D+ und D- (die beiden USB Datenleitungen) werden über jeweils nen kleinen Widerstand an den Atmel angeschlossen.
D- wird zusätzlich noch mit nem 1k Widerstand auf die +5V Leitung gelegt (dadurch erkennt das OS, dass ein Gerät angeschlossen wurde)
Die zwei Dioden an +5V sind anscheinend dafür da, dass die Spannung auf ~3V gesenkt wird, da das der richtige Pegel für die USB Datenleitungen sind.
So versteh ich das ganze zumindest, aber nachdem ich kein ETechniker bin, gibts da bestimmt den ein oder anderen Fehler in der Beschreibung
Auf alle Fälle ist der Schaltplan recht easy...
Softwareseitig wird der Atmel dann per C programmiert (oder Assembler, es gibt sogar ein Basic Compiler, aber der hat afaik keine USB Library)
blablablablablub... jetzt aber genug davon
<hr>Append on Jul 23 2007, 15:21<hr><!--QuoteBegin--rEdoX@Jul 23 2007, 12:57 Mir fallen spontan SendInput, keybd_event und SendMessage ein.
Treiber programmierung ist nicht gerade eine meiner staerken, deswegen faellt mir dazu leider nichts ein. [/quote]
jap, p01nt3r hat das ja auch schon angesprochen.
wobei keybd_event seit XP von SendInput abgelöst wurde ("Windows NT/2000/XP/Vista:This function has been superseded. Use SendInput instead.")
Ich teste im Moment gerade SendInput/SendMessage, mal sehen wie weit ich damit komm...
SendMessage ist gefährlich, da dass Zielfenster sehen kann, von welchem Prozess/Thread der Aufruf kommt.
PostMessage ist ungefährlich, da das Betriebssystem den Aufrufer nicht mitprotokolliert. Wenn die Message ausgeführt wird, kann das Zielfenster sie nicht mehr von regulären Messages unterscheiden.
Nebenbei wurden bei irgendeinem (oder bei allen?) APIs ein Injected-Flag gesetzt. Wenn es das Zielprogramm darauf anlegt, kann es sehen, dass die Tasten emuliert und nicht physisch gedrückt wurden. Wenn es wirklich sicher(er) sein sollte, sollte ein Devicetreiber das ganze auch erledigen, aber da muss ich auch passen.
Sodala, ich hab ein bisschen getestet und das mit SendInput scheint zu funktionieren...
Von dem ganzen Post/SendMessage hab ich erstmal Abstand genommen.
Der Trick bei SendInput ist, dass man dadurch, dass man kein Ziel bei SendInput angeben kann, man erst einmal mit AttachThreadInput den eigenen Input auf das Zielprogramm richten muss.
Folgender Code funktioniert bei mir:
Code:
HWND targetHWND=0;
DWORD thisThread,otherThread;
//Ziel finden
targetHWND=FindWindowA(NULL,"Zielprogramm");
if(targetHWND==0) {MessageBoxA(0,"Can't find...","OUCH",0);}
//ThreadId für Quelle/Ziel ermitteln
thisThread=GetCurrentThreadId();
otherThread=GetWindowThreadProcessId(targetHWND,NULL);
//Verbinden....
if(!AttachThreadInput(thisThread,otherThread,true)) {
MessageBoxA(0,"Oh noes...","OUCH",0);
}
//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));
//Verbindung lösen
AttachThreadInput(thisThread,otherThread,false);
Hier steht übrigens drinnen, warum man Post/Sendmessage nicht benutzen sollte um Keyboard Input zu simulieren.....
So, mein kleines Proof-of-Concept Teil ist fertig.
Ausgangssituation:
Zwei PCs mit jeweils einem Lineage Client.
Für's Dual-Boxing hätte ich gerne die Möglichkeit, Tasteneingaben an den zweiten PC zu schicken.
Lösung:
Auf dem 1.PC läuft ein Programm, dass verschiedene Hotkeys registriert und per Netzwerk an den 2.PC schickt.
Auf dem 2.PC läuft ein anderes Programm, dass die Eingabe per Netzwerk erhält und dann per SendInput Tasten an den Lineage Client sendet.
Das ganze ist ein VisualC 2005 Projekt.
Alles eher Quick'n'Dirty hingerotzt, aber es funktioniert bei mir
Die 3 Hotkeys sind <windows-taste>-(F9|F10|F11) wobei win-F11 das Programm beendet.
Auf der Server seite wird F1 an Lineage geschickt, wenn win-f9 gedrückt wird, bzw. F2 bei win-f10
Das Projekt an sich wird jetzt für die meisten eher uninteressant sein, aber man kann es evt. als Basis für was eigenes benutzen (don't forget the credits :-p)
Simulating Keystrokes 11/18/2011 - General Gaming Releases - 6 Replies Hi folks,
usually I am not releasing my stuff. But here is a small hint for "do it yourself" people, how to simulate keystrokes for Warhammer Online.
The usual way to do that via Postmessage or kbdevent does NOT work here, because Warhammer is a DirectInput game.
It cost me some hours to figure out a proper but easy way how to do it:
INPUT input;
auf verschiedene arten P-pserver zocken 08/11/2010 - Metin2 PServer Guides & Strategies - 4 Replies Hallo,
ich habe hier für euch ein viele verschiedene arten aufgelisten wie man einen metin2 privatserver zocken kann:
1. man kann den Client downloden von der Hp
2. man kann die .exe downloaden und in den ordner ziehen
3. man kann den patcher downloaden und den ordner patchen lassen
4. man kann mit den sogenannten mc dateien zocken (mc.exe - mc.txt - mc.dll - und der starter) dazu müsst ihr euch in metin einloggen und charauswahl dann in die IP in die .txt einfügen dazu sucht ihr cmd...
The difference between hard/software keystrokes 02/17/2009 - 9Dragons - 2 Replies Hi all,
I recently joined so forgive my noobies questions
I was wondering how Keystrokes made by software and hardware are different. The reason for this the "Logitech Revolution mouse" can asign other Keys to it's Buttons even keyboad keys how come Gameguard allows this?
Does Gameguard only block what it knows or is this only partly the case?
How can i send keystrokes to an application in background 04/09/2008 - Archlord - 3 Replies i need something like a macro that can send keystrokes to an application in background and loop the sending in delay of 2 minutes or something... Any1 have an idea how can i do this or where can i download such program?
Verschiedene Waffen gegen verschiedene Monster 06/27/2006 - Ragnarok Online - 40 Replies Hiho ^^
Ich wollte mal fragen, ob es möglich ist, dass ich beim Botten verschiedene Waffen benutze? Weil gegen manche Monster bräuchte ich meinen Icepick, gegen den Rest allerdings mein Tripple Bloody Saber. Also wie mache ich das?
Aso, und dann müsste ich mir irgendwo suchen, wie ich es mache, dass er sich bei zu vielen Monstern wegteleportiert...