Tastendruck auslösen



  • Hi Leute, weiß zufällig wer von euch, wie ich,während ein anderes programm den focus hat, einen tastendruck simulieren kann, der dann natürlich an das andere programm gesendet wird???

    Wäre echt nett, wenn jemand ne idee hätte

    master of buuh



  • hmmmmm...
    wofür braucht man denn sowas? Spontan fällt mir da nur ein Keylogger ein....



  • Nein, ein Keylogger würde die Key-Events des anderen Programms abfangen und nicht selber Key-Event produzieren und die an das andere Programm senden. Soweit ich weiss bietet das .net-Framework selber keine Klassen und Methoden dafür, aber ich hab ma eine Library von nem Drittanbiter (war sogar open source) gesehen die für sowas Klassen und Methoden bereitstellte. Ich weiss jetzt aber nicht mehr wie die heisst. Ansonsten kannste deine Glück noch mit WinAPI-Calls versuchen.

    Gruß
    Schrankwand



  • Damit der Keylogger aber nicht entdeckt wird, muss er die Events weiterreichen oder die selben Events noch einmal auslösen, nachdem er sie gespeichert hat. Er hängt doch im Prinzip zwischen Tastatur und den anderen laufenden Prozessen, die auf eine Nachricht warten. Oder versteh ich da was falsch???

    Gruß Domino



  • Wenn er wirklich nen Keylogger bräuchte, würde er hier nicht fragen, denn sowas gibt es doch bereits schon auf www.codeproject.com und zwar genau http://www.codeproject.com/csharp/globalhook.asp

    Und der muss garnicht weiterreichen, oder er machts doch, keine Ahnung. Aber hier hätte er doch schon die ideale Lösung für deinen Keylogger.

    So nu zu dir Master of Buuh. Wie Schrankwand schon sagte, .NET bietet selber dafür garnichts an, außer SendKey.Send(). Das generiert aber nur globale KeyEvents. Ich hab mich mal ein bischen umgeschaut, mit der WinAPI scheints wirklich eine Lösung zu geben. Auf dieser Seite hier http://www.pcreview.co.uk/forums/thread-1349027.php wird weiter unten im Text beschrieben wie man das über C# realisieren kann. Ich hab mich da jetzt nicht GENAU reingelesen, weiß aber von meiner C++ Zeit, dass die Lösung funktionieren müsste.

    Gruß

    Markus Seidl


Anmelden zum Antworten