C# Tasten drücken lassen
lima-city → Forum → Programmiersprachen → Programmieren mit .NET & Mono
aktive fenster
bringen
code
ergebnis
fenster
form
http
pfeiltaste
sekunde
spiel
string
system
tastatureingabe
tasten
test
texteditor
url
vordergrund
wartezeit
windows
-
Hallo,
ich habe vor ein paar Wochen angefangen C# zu lernen und benutze als Editor VC# 2010.
Nun möchte ich ein Programm schreiben, das die Tasten 1 bis 4 auf meiner Tastatur drückt. Allerdings kann dazu nichts im Internet finden.
Ist das denn möglich mit C#? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du solltest vielleicht mal zuvor definieren was du machen möchtest. Willst du die Eingaben in deiner eigenen UI oder in einem anderem Fenster machen. Wenn es ein anderes Fenster ist, um was für ein Fenster handelt es sich (Spiel, Browser, etc.).
Da ich mal grundsätzlich davon ausgehe, das das Ziel ein anderes Fenster ist verweise ich dich mal auf pinvoke. Es sei aber gesagt, das es sich hier um keine Anfänger API handelt.
lg
Doomdrake
Beitrag zuletzt geändert: 13.6.2011 15:35:26 von heroes-of-legends -
Jap, wäre für ein Spiel gedacht. Allerdings ein sehr altes Offline-Spiel um sowas zu üben...
-
Hallo demonic-legends,
eine Möglichkeit, mit der Du Tastatureingaben an das aktive Fenster sende kannst ist die System.Windows.Form.SendKeys-Klasse.
Das sieht dann z.B. so aus:
Die 5 Sekunden Wartezeit sind dazu da, dass Du z.B. einen Texteditor in den Vordergrund bringen kannst, um das Ergebnis zu bewundernusing System; using System.Windows.Forms; using System.Threading; namespace Test { class Program { public static void Main(string[] args) { Thread.Sleep(5000); SendKeys.SendWait("1"); SendKeys.SendWait("2"); SendKeys.SendWait("{Enter}"); SendKeys.SendWait("3"); SendKeys.SendWait("4"); SendKeys.SendWait("{Enter}"); } } }
-
darkpandemic schrieb:
Hallo demonic-legends,
eine Möglichkeit, mit der Du Tastatureingaben an das aktive Fenster sende kannst ist die System.Windows.Form.SendKeys-Klasse.
Das sieht dann z.B. so aus:
Die 5 Sekunden Wartezeit sind dazu da, dass Du z.B. einen Texteditor in den Vordergrund bringen kannst, um das Ergebnis zu bewundernusing System; using System.Windows.Forms; using System.Threading; namespace Test { class Program { public static void Main(string[] args) { Thread.Sleep(5000); SendKeys.SendWait("1"); SendKeys.SendWait("2"); SendKeys.SendWait("{Enter}"); SendKeys.SendWait("3"); SendKeys.SendWait("4"); SendKeys.SendWait("{Enter}"); } } }
Das ist hilfreich danke :)
Wie wäre dann z.B. der Befehl um die Linke Maustaste drücken zu lassen und eine der Pfeiltasten?
Beitrag zuletzt geändert: 28.6.2011 22:11:44 von demonic-legends -
Hallo demonic-legends,
die Pfeiltasten kannst Du folgendermaßen drücken lassen:
Eine vollständige Liste der Tasten findest Du hier.SendKeys.SendWait("{LEFT}"); SendKeys.SendWait("{RIGHT}"); SendKeys.SendWait("{UP}"); SendKeys.SendWait("{DOWN}");
Das mit der Maus geht leider mit .Net-Bordmitteln nicht. Dazu musst Du auf die Win32 API zurückgreifen. Hier ist ein Beispiel dazu:
http://stackoverflow.com/questions/5965708/send-keyboard-and-mouse-events-to-directx-application-in-c -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage