Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 04:48

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

Advertisement



Verschiedene Arten um Keystrokes zu simulieren?

Discussion on Verschiedene Arten um Keystrokes zu simulieren? within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Aug 2004
Posts: 106
Received Thanks: 7
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....
pengpong is offline  
Old 07/23/2007, 01:59   #2
 
elite*gold: 0
Join Date: Aug 2004
Posts: 106
Received Thanks: 7
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)
pengpong is offline  
Old 07/23/2007, 12:50   #3
 
mr.rattlz's Avatar
 
elite*gold: 0
Join Date: Aug 2005
Posts: 896
Received Thanks: 334
Quote:
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 ?
mr.rattlz is offline  
Old 07/23/2007, 12:57   #4
 
rEdoX's Avatar
 
elite*gold: 20
Join Date: Jan 2006
Posts: 539
Received Thanks: 228
Mir fallen spontan SendInput, keybd_event und SendMessage ein.
Treiber programmierung ist nicht gerade eine meiner staerken, deswegen faellt mir dazu leider nichts ein.
rEdoX is offline  
Old 07/23/2007, 15:15   #5
 
elite*gold: 0
Join Date: Aug 2004
Posts: 106
Received Thanks: 7
Quote:
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...
pengpong is offline  
Old 07/25/2007, 16:13   #6
 
elite*gold: 0
Join Date: Jun 2005
Posts: 8
Received Thanks: 2
Hallo !

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.

MFG Apollo
apollo is offline  
Old 07/25/2007, 20:20   #7
 
elite*gold: 0
Join Date: Aug 2004
Posts: 106
Received Thanks: 7
Ah, sehr guter Tip apollo, danke
pengpong is offline  
Old 08/03/2007, 00:27   #8
 
elite*gold: 0
Join Date: Apr 2007
Posts: 66
Received Thanks: 15
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.
wiz is offline  
Old 08/04/2007, 02:43   #9
 
elite*gold: 0
Join Date: Aug 2004
Posts: 106
Received Thanks: 7
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&#40;NULL,&#34;Zielprogramm&#34;&#41;;
if&#40;targetHWND==0&#41; {MessageBoxA&#40;0,&#34;Can't find...&#34;,&#34;OUCH&#34;,0&#41;;}


//ThreadId für Quelle/Ziel ermitteln
thisThread=GetCurrentThreadId&#40;&#41;;
otherThread=GetWindowThreadProcessId&#40;targetHWND,NULL&#41;;



//Verbinden....
if&#40;!AttachThreadInput&#40;thisThread,otherThread,true&#41;&#41; {
	MessageBoxA&#40;0,&#34;Oh noes...&#34;,&#34;OUCH&#34;,0&#41;;
}

//Wir wollen ein &#60;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&#40;targetHWND&#41;;
//SetFocus&#40;targetHWND&#41;;

SendInput&#40;1,&ip,sizeof&#40;INPUT&#41;&#41;;


//Verbindung lösen
AttachThreadInput&#40;thisThread,otherThread,false&#41;;


Hier steht übrigens drinnen, warum man Post/Sendmessage nicht benutzen sollte um Keyboard Input zu simulieren.....
pengpong is offline  
Old 08/04/2007, 04:34   #10
 
elite*gold: 0
Join Date: Aug 2004
Posts: 106
Received Thanks: 7
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)
Attached Files
File Type: ibf post-136-1186194843.ibf (6.9 KB, 18 views)
pengpong is offline  
Reply


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



All times are GMT +2. The time now is 04:48.


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.