FirstChoice Member
Anmeldedatum: 01.06.2012 Beiträge: 200
|
Verfasst am: 09.07.2012, 01:26 Titel: C# Konsole - KeyDown Event? |
|
Guten Morgen,
Ich wollte mal fragen, ob es in der C#-Konsole so etwas wie ein KeyDown-Event gibt. Ich kenne die Methode Console.ReadKey(), allerdings wird da der Buchstabe auf den Bildschirm geschrieben. Ich möchte wirklich nur den Tastendruck abfragen, wie bei XNA per
| Code: |
Keyboard.GetState().IsKeyDown(Keys.W);
|
Kennt jemand ne Lösung? Muss es doch geben^^
mfg |
|
| Nach oben |
|

|
cheater Member
Anmeldedatum: 05.06.2011 Beiträge: 612 Wohnort: Nähe Graz
|
Verfasst am: 09.07.2012, 08:26 Titel: |
|
Wenn du bei ReadKey als ersten Parameter (intercept) true übergibst, wird der Buchstabe nicht in die Konsole geschrieben.
mfg cheater _________________ Ich übernehme keinerlei Haftung für falsche, unnütze oder störende Beiträge... |
|
| Nach oben |
|

|
FirstChoice Member
Anmeldedatum: 01.06.2012 Beiträge: 200
|
Verfasst am: 09.07.2012, 11:45 Titel: |
|
okay danke gibt es dann eine möglichkeit, nicht auf den tastendruck zu warten, sondern einfach abzufragen ob die taste unten ist??
mfg |
|
| Nach oben |
|

|
Kevin Member
Anmeldedatum: 24.10.2008 Beiträge: 882 Wohnort: Karlsruhe
|
Verfasst am: 09.07.2012, 13:54 Titel: |
|
Hi,
ich bin mir nicht sicher, ob das funktioniert, da ich es noch nie in einer Konsolenanwendung ausprobiert habe:
Es gibt die GetAsyncKeyState Funktion der WinAPI, diese ist normalerweise nur in C und C++ erreichbar, doch über pinvoke lässt sich dies auch in managed C# Code ausrufen.
Du kannst ja mal ausprobieren, ob du damit erreichst, was du haben willst...
Falls du noch weitere Keyboard oder Mausinformationen haben willst kannst du dir auch mal meinen Artikel hier anschauen, der basiert zwar komplett auf C++, aber die ganzen Funktionen lassen sich mit pinvoke ja auch in C# aufrufen. _________________ Mein Youtube Kanal |
|
| Nach oben |
|

|
FirstChoice Member
Anmeldedatum: 01.06.2012 Beiträge: 200
|
Verfasst am: 09.07.2012, 19:01 Titel: |
|
| hmm... so ganz verstanden habe ich das mit pinvoke noch nicht... da werden anscheinend DLLs importiert. aber woher weiß ich, welche DLL ich speziell benötige? |
|
| Nach oben |
|

|
taotsetung Member
Anmeldedatum: 08.11.2011 Beiträge: 54
|
Verfasst am: 09.07.2012, 20:29 Titel: |
|
Ja, P/Invoke ruft native (also nicht - .NET ) Bibilotheken auf.
Um die richtige DllImport Signatur herauszufinden am besten auf http://pinvoke.net/ suchen
oder Mr. Google mit "C# <Funktionsname> pinvoke" füttern. |
|
| Nach oben |
|

|
FirstChoice Member
Anmeldedatum: 01.06.2012 Beiträge: 200
|
Verfasst am: 09.07.2012, 21:29 Titel: |
|
| achso, alles klar. ich guck mal was sich machen lässt^^ |
|
| Nach oben |
|

|
Xedon Member
Anmeldedatum: 28.07.2012 Beiträge: 71
|
Verfasst am: 28.07.2012, 23:58 Titel: |
|
| Könnte man nicht einen separaten Thread starten der Console.ReadKey() beinhaltet und dann ein Event auslöst ? |
|
| Nach oben |
|

|
|