Simulieren eines >ECHTEN< Tastaturdrucks

  • Hallo,
    ich muss für den abschluss eines Autoit-Kurses eine Funktion erstellen mit der ich ein gleiches Signal erstelle als ob ich auf eine Taste auf der Tastatur drücke das heißt bereits fertige Befehle wie send ("{...}") kommen nicht in frage, da ich zum ersten mal in diesem Kurs absulut Planlos vor einer Aufgabe stehe frage ich mich ob das übrhaupt möglich ist und wenn nicht wie komme ich möglichst nahe an einen echten Tastendruck ran???
    Ich bitte um einige Ideen oder zumindest ein paar Ansätze wie ich an dieses Problem rangehen soll.
    Hier die Aufgabenstellung 1 zu 1, da ich ja evtl etwas falsch verstanden haben könnte:

    Aufgabe 4.
    Erstelle eine UDF mit deren Hilfe man ein Eingabesignal vortäuscht das einem echten Eingabesignal exakt entspricht.

    Ich hoffe irgendwer wird etwas schlauer daraus als ich :/

    Danke i vorraus.
    WinniePouh

    PS.: Zeit für die 14 Aufgaben haben wir bis zum 15.03.! Ich hoffe irgendwem fällt bis dahin etwas ein. Ich werde mich auch mit meienn "Mitschülern" austauschen und sobald ich mehr weiss euch natürlich auch Bescheid geben, denn man hat ja nie ausgelernt ;) Ich bezweifle zwar, dass das für irgendetwas nützlich sein könnte aber Wissen ist bekanntlich immer gut :rolleyes:

    Edit.: Mir würde ja sogar schon helfen wie ich herausbekomme wie ein echter Tastendruck vom Signal bzw der Informationsübermittlung her aussieht...
    *heul* ich bin so ratlos wie noch nie in meinem Leben

    2 Mal editiert, zuletzt von WinniePouh (5. März 2010 um 18:47)

  • Der Lehrer im 2. Jahr..... *frustration macht sich breit*
    Er ist echt ein ******* aber ein sau guter Lehrer der wirklich was beibringt.
    (das 2. Jahr bezieht sich auf Problemlösung und Herangehensweise an die Wegfindung nur leider formuliert er es manchmal etwas.... aber bisher war alles verständlich)

    haha, ja Finger benutzen ist gut :P nur leider kann ich das so schlecht präsentieren.... wäre soetwas nicht möglich würde er so eine Frage glaube ich nicht stellen.... und wie gesagt manchmal ging auch nur eine weitere Annäherung zu anderen bereits gegebenen Funktionen bei denen die Frage ähnlich "blöd" oder auch "dumm" gestellt war.

  • Hui, ja das könnte ne Möglichkeit sein.
    Aber jetzt habe ich noch eine Frage, ist es nicht immer möglich nachzuvollziehen von wo der Befehl kommt??? Denn wenn ja, ist das doch unter den gegebenen Umständing (exakt das selbe Signal) nicht möglich, oder??? Wenn ich richtig liege wäre geklärt, dass ich nur nach einer Annäherung suchen muss die dem Signal mehr ähnelt als der einfache send-Befehl.
    Bitte berichtigen falls dem nicht so ist.

    • Offizieller Beitrag

    Ein Hardware-Interrupt ist etwas anderes als ein Software-Interrupt. Ich glaube nicht, dass du das Betriebssystem da überlisten kannst, wenn es das nicht will (höchstens auf Treiberebene dafür sorgen, dass sich die Events auch per Software auslösen lassen, aber das ist wohl übertrieben und nicht soooo einfach :D).

    Johannes

  • Der Lehrer meint die Send Funktion oder?
    Kannst ja eine schöne UDF schreiben, die einen Übergabestring (z.B. "Strg") in den autoit Syntax übersetzt.

    P.S. Wobei das auch sehr fragwürdig ist, wozu gibts denn die Hilfe? :rolleyes:

  • Das stimmt.
    Auf Treiber Ebene rumzufuchteln ist mit Autoit ziehmlich sicher nicht möglich da mir zu dem Thema jetzt nur die dll injection in den Sinn kommt und ich mit Autoit da keine Möglichkeit sehe aber selbst wenn es da eine gibt ist mir die viel zu kompliziert da das mit vorgefertigten Teilen schon schwer genug ist... zumindest für einen Hobbyprogrammierer wie mich....
    Aber damit wäre geklärt dass ich nur nach einer Annäherung suche, aber ich mach da morgen weiter ich werde schon langsam unkonzentriert und bekomme Hunger -> das heißt für mich jetzt erstmal was anständiges kochen ^^
    Wer jedoch noch Ideen hat oder irgendetwas was hier etwas helfen könnte postet doch wenn ihr Lust dazu habt.

    edit:
    nuts ich denke nicht da ich die send funktion eindeutig identifizieren kann da das ganze nur auf oberster Ebene stattfindet.
    Man kann ja selbst mit Autoit ein Programm schreiben das nur auf Tastendrücke reagiert und nicht auf die Simulation eines zur gleichen zeit laufenden anderen autoit Programms.

  • wow.... ich weiss das klingt jetzt verrückt aber das lässt mir grade keine Ruhe und ich musste den PC jetzt einfach nochmal anschmeißen und das posten bevor ich es vergesse.
    Ist es möglich mit AutoIT DirectX Hooks herzustellen??? Wenn ja müsste das die Lösung sein denn die echte Tastatur arbeitet darüber.
    Hat jemand konkret dazu eine Idee??? Falls ich gerade totalen Stuss rede entschldige ich mich dafür ich bin hundemüde und hatte eigendlich schon geschlafen...

    PS.:
    Genügend Interessenten und potentielle Problemlöser lockt das Thema ja an, da es bereits mehr als 100 Views sind. Entweder seid ihr hier extrem hilfsbereit und versucht harte nüsse zu knacken oder ihr seht einen allgemeinen Nutzen darin für den ich blind bin.

  • Hooks kann man mit AutoIt nicht erstellen, da muss man wieder DLLInjection verwenden, das ist nicht einfach und nicht gern gesehen (meistens für Bots verwendet) DirectX--Hooks bringen dir für diese Aufgabe auch nichts bei normalen Anwendungen, sondern nur DirectX-Anwendungen, meistens sind das nur Spiele.

    PS: Ich frage mich gerade, ob diese Aufgabe echt ist, oder ob du hier Hilfe für nen Bot suchst :whistling: Hat sich ja durch deinen Kommentar erledigt ;)

    Einmal editiert, zuletzt von progandy (6. März 2010 um 13:43)

  • Achso, dass das nur bei DirectX anwendungen auch über DirectX läuft hätte ich mir zwar denken können aber gewusst habe ich das nicht, gut dann geht das Grübeln weiter....
    Kleine Bemerkung am Rande: Mal abgesehen davon, dass ich hier nichts anderes machen will als eine meiner Abschlussaufgaben zu erledigen. Zum Thema Bot musste ich wenn ich ehrlich bin Googlen, da nach meinem Verständnis ein Bot ein automatisiertes Programm ist das in einzelnen Schritten eine Abfolge abarbeitet um dem Benutzer bei oft wiederholten Abläufen das Leben zu erleichtern. Wobei du aber meines Erachtens hinauswillst ist laut Wik***dia (ist hier "Schleichwerbung" erlaubt?) ein Programm womit ich man sich in Spielen einen Vorteil verschafft, richtig? Naja da kann ich dich beruhigen, das ist sicherlich nicht mein Ziel, ausserdem würde ich für komplexere Aufgaben zu C++ wechseln.
    Ich hoffe dass ich mit dieser, doch etwas größeren, Anmerkung meinen Standpunkt erklärt habe, jedoch verstehe ich die Bedenken von progandy, da ich mir gerade eure Foren-Regeln durchgelesen habe.