C# Tastendruck Simulieren

PlayTheTouch

Lt. Junior Grade
Registriert
März 2012
Beiträge
282
Hallo CBler;

Von der Schule haben wir eine Version Visual Studio 2010 bekommen! Jetzt haben wir damit Angefangen die Grundsätze von C# zu lernen. Ich sitze gerade zuhause und versuche ein wenig mit dem Programm warm zu werden. Ich wollte mal mit einem einfachen Programm beginnen und zwar soll das Programm immer nach einem Vorgegebenen Zeitzyklus eine Bestimmte Taste Drücken bzw den Druck Simulieren doch ich habe keine Ahnung wie ich das machen soll! Könnt ihr mir helfen?

Gruß
 
Hallo,

das Schlagwort dazu ist "windows message" & soetwas wie "WM_Keydown" die du erzeugen musst.

gl
E.o.B
 
Hi,

es gibt auch eine einfachere Methode. Diese wurde früher hauptsächlich bei Visual Basic verwendet und ist nicht mehr up to date. Aber vielleicht findest du darüber ja deinen Einstieg?
SendKeys: http://msdn.microsoft.com/de-de/library/ms171548(v=vs.110).aspx

EDIT:

Habe gerade gelesen, dass sogar heute noch manche Entwickler diese Funktion bei .Net 4.5 Projekten verwenden. Ist aber wie geschrieben nur für den leichteren Einstieg gedacht. Du kommst um Messaging nicht drum herum, wenn du als Programmierer "ernst" genommen werden willst... :D

Soll deine Anwendung nur einen Tastendruck simulieren, wie zum Beispiel das Drücken der Windowstaste oder soll die Ausgabe auch in einer Fremdanwendung angezeigt werden?
 
Zuletzt bearbeitet:
SendKeys könnte ausreichen, kommt halt darauf an was der TE machen möchte.
Aber es kann sehr schnell in einer Sackgasse enden wo man sich freut, dass in einfachen Fällen funktioniert und wenn man mehr machen möchte nicht mehr. Dann lernt man zweimal. :)

*Falls Du (der TE) etwas wie ein MacroTool schreiben möchtest, nimm kein SendKeys.
 
INTELLER schrieb:
Hi,

es gibt auch eine einfachere Methode. Diese wurde früher hauptsächlich bei Visual Basic verwendet und ist nicht mehr up to date. Aber vielleicht findest du darüber ja deinen Einstieg?
[...]
Habe gerade gelesen, dass sogar heute noch manche Entwickler diese Funktion bei .Net 4.5 Projekten verwenden

Klar ist SendKeys noch aktuell, warum auch nicht? SendKeys kommt aus dem Namespace "Forms" und hat genau dort sein Einsatzgebiet, warum sollte man da umständlich mit Win32 SendInput rumhantieren? Wenn man außerhalb seiner Forms agieren möchte, dann fällt SendKeys komplett weg, aber dafür ist es auch nicht gedacht (aber mitnichten veraltet).
 
Zuletzt bearbeitet:
Würde dies den Auch bei einem Zweit Programm Funktionieren?
Sprich einem Spiel?

Gruß
 
SendKeys? Nein :)
Es gibt aber sicher Libs, die die Win32 API ähnlich gut abstrahieren. Direkt darauf zuzugreifen ist aus deiner Sicht keine gute Idee (nicht böse gemeint). Sowieso ist die Aufgabe, die du dir da selbst gestellt hast, nicht unbedingt der beste Anfang.
 
Zuletzt bearbeitet:
Anwendungen, die DirectX zur Detektion einer Geräteeingabe verwenden, können nicht mit den üblichen Methoden manipuliert werden. Dazu muss man das ausgelesene Gerät selbst manipulieren.
 
carom schrieb:
Klar ist SendKeys noch aktuell, warum auch nicht? SendKeys kommt aus dem Namespace "Forms" und hat genau dort sein Einsatzgebiet, warum sollte man da umständlich mit Win32 SendInput rumhantieren? Wenn man außerhalb seiner Forms agieren möchte, dann fällt SendKeys komplett weg, aber dafür ist es auch nicht gedacht (aber mitnichten veraltet).

Tja, da gehen die Meinungen leider auseinander... Ich weiß ja nicht, für wen du programmierst, bei uns in der Firma wird aber international gearbeitet und da würdest du mit SendKeys ganz schön dumm dastehen! Das kannst du auch auf vielen "etablierten" Programmier-Foren nachlesen. Oftmals ist dort die Rede von "verpönt" oder "Anfänger". Ich will jetzt aber keine Diskussion vom Zaun brechen, da mir das erstens zu dumm ist und zweitens der TE davon nichts hat. Also bleibe du ruhig bei deiner Meinung, ich kann damit gut leben! :D
 
Ich wette, dass ich von dir hier eh nichts mehr lesen werde, aber darfst gerne mal ein paar Links zu deinen "etablierten Programmier-Foren" reinstellen.

bei uns in der Firma wird aber international gearbeitet und da würdest du mit SendKeys ganz schön dumm dastehen!
Oftmals ist dort die Rede von "verpönt" oder "Anfänger"

:freak: Schmerzen...

SendKeys ist nichts anderes Win32 SendInput in beschränkter Form. Kein Mensch nutzt innerhalb WinForms die Windows API direkt, wenn er das ganze schön sauber direkt von .NET verpackt bekommt und das für seine Anforderungen ausreichend ist. Außerhalb von WinForms, schon bei WPF, ist SendKeys nutzlos. Aber nur weil es in seiner Mächtigkeit beschränkt ist, hat das nichts mit Anfänger oder was auch immer zu tun.
 
Zuletzt bearbeitet:
carom schrieb:
Ich wette, dass ich von dir hier eh nichts mehr lesen werde, aber darfst gerne mal ein paar Links zu deinen "etablierten Programmier-Foren" reinstellen.

Gäääähn, wieso? Immerhin habe ich dem TE ja den Tipp mit SendKeys überhaupt erst gegeben. Wieso denkst du, dass du von mir nichts mehr liest? Sollte ich vor dir und deinen tollen Kommentaren denn Angst haben? :vernaschen:

Übrigens: selbst Microsoft rät dazu die Funktion nicht zu benutzen, wenn man mehrsprachige Anwendungen programmiert:


If your application is intended for international use with a variety of keyboards, the use of SendKeys could yield unpredictable results and should be avoided.
Zu lesen auf der von mir verlinkten Seite! Und bitte sei mir nicht böse, aber meine Links zu Programmier-Foren gebe ich dir garantiert nicht. :D

Trotzdem einen schönen Sonntag!
 
INTELLER schrieb:
[...]Und bitte sei mir nicht böse, aber meine Links zu Programmier-Foren gebe ich dir garantiert nicht. :D
[...]

Nicht sicher ob Troll, oder sehr sehr sehr dumm...
In gewisser Hinsicht hat carom dann doch Recht, er wird von dir zumindest das nicht mehr lesen...für's erste...
 
INTELLER schrieb:
Übrigens: selbst Microsoft rät dazu die Funktion nicht zu benutzen, wenn man mehrsprachige Anwendungen programmiert:

Na dann viel Spaß mit dem Pivoken, als gäbe es da nicht genug zu umschiffen, bevor man überhaupt mal loslegen kann.
Ich weiß nicht, worauf du hinaus möchtest. In diesem Thread wurde nie behauptet, dass SendKeys von seiner Mächtigkeit mit einer systemnahen Lösung über Pinvoke mithalten kann. Was du aber offenbar nicht verstehen wolltest ist, dass das nichts mit "Anfänger" zu tun hat, sondern eine Frage der Anforderungen ist.

Das ist in etwa so, als würdest du alle als Anfänger bezeichnen, die den Datentyp float benutzen, nur weil es double gibt.

INTELLER schrieb:
Und bitte sei mir nicht böse, aber meine Links zu Programmier-Foren gebe ich dir garantiert nicht. :D

Was soll das? Wie alt bist du, 14? Oh mann..
 
Zuletzt bearbeitet:
Guten Abend;

Was ist denn hier los Leute? Ihr müsst doch jetzt kein Streitgespräch starten! Ich hab doch nur eine relativ einfache Frage gestellt in der Hoffnung das diese für mich Realisierbar ist! Konnte mir nicht vorstellen das es da so viel Diskussionsstoff gibt! Es muss ja nur den Zweck erfüllen und da ist es mir relativ egal ob die Lösung verpönt ist solange sie Funktioniert! Das Programm würde doch nur ein Button und eine TextBox benötigen wenn Button Click lese Zahl aus TextBox und in dem Intervall wird dann der Button simuliert! Um dann zB. den Browser zu Aktualisieren!

Gruß
 

Ähnliche Themen

Antworten
25
Aufrufe
10.432
1668mib
1
Zurück
Oben