Tastendruck simulieren: Zugriff verweigert

Hallo,
mich beschäftigt schon seit einiger Zeit, das Problem, dass ich es nicht schaffe einen Tastendruck so zu simulieren, dass er bei jeden Programm, egal ob es durch einen Schutz gesichert ist oder nicht auch ankommt.

Ich hab bereits versucht es mit VBA und Delphi (mit der Sendkeys Unit) hinzukriegen, aber ohne Erfolg.

In VBA hab ich "Senkeys" verwendet, beim Enditor gings noch, aber bei nem MMO namens "Rappelz" war Schluss, da kam nur der Fehler: Zugriff verweigert.

Ich hab dann mal probiert ob die Windows XP Bildschirmtastatur geht, aber leider auch Fehlanzeige, das Teil hat einen Protetionsmechanismus namens HackShield an, der scheinbar alles Blockt. Ich nehm mal an, mit Befehlen der WinAPI werd ich dann da nicht viel machen können.

Mich würde mal interessieren, wo jetzt der Unterschied zwischen einer manuelle Tastatureingabe und so einen "sendkey-Befehl" liegt, wie kann ein Programm das unterscheiden, bzw wie kann ich eine manuelle Tastaturangabe richtig faken, so dass es wirklich nicht erkennbar ist, ob man das per hand, oder per Software macht.

Danke fürs Lesen und Überlegen ;)

mfg

Gargamel27
 
zu mindestens einer Frage weis ich ne Antwort:
wie kann ich eine manuelle Tastaturangabe richtig faken, so dass es wirklich nicht erkennbar ist, ob man das per hand, oder per Software macht.
Man kann sich auch eine programmierbare Tastatur holen. Da kann man dann irgendwie einspeichern, das auf einen Tastendruck bestimmte keycodes an den PC gegeben werden. Das kann dann auch von garantiert keiner Software erkannt werden, außer sie misst die Zeitabstände zwischen den Tastendrücken. Wenn sie immer ms gleich sind -> gefaketer Tastendruck.
Aber das macht keine Software und anders kann man's auch nicht erkennen, weil das von einer Instanz vor dem eigentlichen PC-Eingang ausgeht.
Manko: Die Tastaturen sind SEHR teuer. >100? (wenn ich mich richtig entsinne)
 
Hi, danke für die Antwort!

Aber so ne Tastatur wäre auch nur ne ausweichlösung, da ja nach wie vor der Tastendruck nicht von mir simuliert wird, sondern über den Tastaturtreiber läuft.

Also programmiertechnisch is das ganze dann nicht möglich, oder?

Edit: Die Lösung wär natürlich eine Art programmierbarer Keyboard Treiber, bei dem auf Anweisung ein Tastendruck ausgelöst werden könnte.
 
Hi, und danke für die Antwort!

Hab leider Verständnisschwierigkeiten:
Habs folgendermaßen in VBA probiert:

Code:
Private Declare Function SetWindowsHookEx Lib "user32" Alias  SetWindowsHookExA" _ 
 (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, _                                           
 ByVal dwThreadId As Long) As Long

'-------------------------------------Button : Click Event
Private Sub Befehl0_Click()
Call SetWindowsHookEx(WH_KEYBOARD_LL, ?????????????
End Sub

Was bei ???? kommt weiss ich nicht, da komm ich nicht weiter.

Ich hab auch immer wieder gelesen, dass man mit dieser Procedure z.B. Strg + Alt + Ent und andere Windows reservierte Tastenkombinationen abfangen könnte, hab aber leider keine Beispiele gefunden, mit denen ich auch Tastenbefehle senden kann.

Desweiteren verstehe ich nicht, was du mit
Musste alles in ne dll packen...
meinst, kann nicht alles direkt in den Code schreiben?

Hab leider nicht viel Ahnung von so ner Art Programmierung, sie würde mich aber dennoch interessieren! Wenn jemand irgendwelche Hilfen oder Tutorials parat hat, dann wär ich dankbar wenn er sie posten könnte!

Danke schonmal

mfg

Gargamel
 
Hmm also Hooks sind nicht so einfach zu handhaben.

Wenn du wenig Erfahrung hast könnte es recht lange dauern das hinzukriegen (ich sprehe aus Erfahrung)

Generell:

Der zweite Parameter ist ein Pointer zu einer Callbackfunktion, welche die Tataurmessages bekommt.
--->http://msdn2.microsoft.com/en-us/library/ms644974.aspx

Der 3. parameter ist die Instanz in der die DLL läuft.

Beim vierten kannst du wenn du keine extra Threads verwendest, einfach 0 eintragen, weil er net gebraucht wird.

Mal sehen ob ich noch Codes von mir dazu finde.

MFG
Ace
 
Danke, fürdie Hinweise, dann werd ich mich wohl mal n bisschen mit dem Thema Hooks befassen!

mfg
Gargamel


Ich wärm den Thread mal wieder auf:

Hab mich n bisschen eingelesen in das Thema Hooks, nur hab ich immer nur gelesen, man könnte damit keys abfangen. Mir is deswegen nicht klar, wie ich damit keys schicken kann, was ich ja wie oben beschrieben will.

Danke schonmal fürs Nachdenken

mfg

gargamel
 
Sieh dir mal AHK an. Das ist perfekt für solche Dinge. Bietet auch Sendmodes, die nicht erkannt werden... :) Und, wenn dich die Technik interessiert, es ist Open Source ;)
 
Hi,
tut mir Leid, dass ich mich erst so spät melde, hatte kein Internet, dank "übergangslosem" Providerwechsel ;).
Erstmal Danke für die Antworten!
AHK is ja genial, und vor allem OpenSource, werds mir mal anschaun, vielen Dank!

mfg

gargamel27
 
Zurück
Oben