Tastendrücke Simulieren ?

dmix

Grünschnabel
Hallo,

und zwar möchte ich mir ein kleines Makro Programm schreiben das erst (sobald ich auf einen Button gedrückt habe) meine Eingabe aufnimmt und später dann wiedergeben soll. Z.B. Dann per F1 oder so, ein makro Tool eben.

Mein Ansatz war dieser, ich wollte ja erstmal sehen ob das überhaupt klappt. Doch der Compiler quittiert mir dies mit einer Fehlermeldung...

Code:
private void Form1_KeyUp(object sender,

       System.Windows.Forms.KeyEventArgs e)
        {

            listBox1.Items.Add(e.KeyCode);


        }

Und wenn das dann klappt hätte ich dazu noch eine frage, wie kann ich diese Tastendrücke dann zwischen speichern, so damit ich ja später diese wieder simulieren kann.

Edit: *Tastendrücke soll es selbstverständlich heißen.
 
Zuletzt bearbeitet:
Würde mich auch mal interessieren. Es giibt zum Beispiel Games, bei denen man mit einer bestimmten Tastenkombination (meistens einfach ein Buchstabe wie z.B. m oder b) Items aufnehmen oder Schläge führen kann.
Dies wird mit der Zeit lästig, und es wäre doch nicht schlecht, ein kleines Programm am Laufen zu haben, welches alle 3 Sekunden (oder jede halbe Sekunde) den gewünschten Buchstaben / die gewüsnchte Taste drückt!

Ist dies möglich?

PS: Dumm ist dan nur, dass es auch die Taste drückt, wenn man chattet. Könnte man deshalb auch noch die Einstellung treffen, dass das Programm nur aktiv ist, solange dasjenige Programm im Vordergrund ist, für welches man die Tastendrückungen braucht?
 
ich persönlich würde - wenn ich mal von Windows ausgehen kann, da für Spiele gedacht, - auf Windows MessageHandler aufbauen.

zur zweiten Frage: natürlich kann eine Variable den aktivStatus deines Programms/in dem Fall deines Windows-Fensters speichern und bestimmte Dinge nur dann tuen, wenn das Fenster aktiv ist.

gut erklärt wird dies u.a. hier:
http://www.win-api.de/tutorials.php?tutid=6&SessID=414172430d5a1e1407adb74e3f8d6b57
auch die anderen Kapitel auf der Site sind sinnvoll zu lesen.

und dann noch für das aktive:
http://runtime-basic.net/Windows-API:Data:user32.dll:GetActiveWindow

wenn man dann die ganze Geschichte mit MessageHandles verstanden hat ist es kein Problem mehr ein Tastendruck zu simulieren:
Code:
SendMessage(hZielFenster,WM_KEYDOWN,(WPARAM)'I',0 )//zum Beispiel
lg
kickerxy
 
Zuletzt bearbeitet:
:( Ich verstehe leider kein Wort was der da geschrieben hat! Was ist der unterschied zwischen DOS, API und Windows Forms ...?

Also die DOS-Box (nehm ich jetzt mal an) ist wahrscheinlich die Konsole. Windows Forms sind Windows-Programme wie man sie kennt, aber was soll API sein?
 
DOS (Diskette Operating System) ist ein altes OS von Microsoft und NICHT die Konsole...
Windows Forms ist (meines Wissens nach) das Standart API für Windows
Und API bedeutet Application Programming Interface...
Mit Google hättest du das aber leicht rausfinden können
 
Man kann das sehr wohl in Google suchen, wobei ich aber mit Begriffen wie Application Programming Interface nicht viel Anfangen kann.

Das heisst jetzt also, dass z.B. FireFox oder MS Paint API-Programme sind, also ganz normale Windows-Programme?

Tut mir leid wenn ich ein wenig schwer von Begriff bin!
 
Angenommen, du willst ein grafisches Programm mit einem Button machen...

Möglichkeit 1 wäre ein gigantischer Assemblerhaufen, in dem du alles bis hin zum kleinsten Bauteil im Rechner selber steuern musst, um deinen Button auf den Bildschirm zu bringen
(bisschen übertrieben..., die Hardware überlassen wir besser dem Betriebssystem)

Methode 2: Du suchst dir irgendwas fertig ausprogrammiertes, zB die oben genannten .NET WindowsForms
da brauchst du nur noch ein paar (fertige und fehlerfreie) Funktionen aufrufen, die den ganzen restlichen Kram für dich erledigen, ohne das du dich damit auskennen musst.

In dem Beispiel kann man sagen, der komplette WIndowsForms-Haufen mit allem was dazugehört
sind eine API, die du zum Buttonmalen etc verwendest.

Ich hoffe, das hat jetzt nicht zu seltsam geklungen...war ein langer tag.

hoffe, jetzt ist es klarer
 
Zurück