Zum Inhalt springen

GetKey() für C# Konsole-Anwendungen


Manfred.Becker

Empfohlene Beiträge

Hi,

während ich meine erste C# Konsole-Anwendung programmiert habe, vermisste ich Funktionen die den Tastencode liefern, ohne auf den Tastendruck zu warten. Als C++ Programmierer suchte ich Funktionen wie _kbhit() oder _getch(). Aber ich fand nur C#-Funktionen wie Console.Read() oder Console.ReadLine(). Beides Funktionen, die solange warten, bis eine Taste gedrückt wurde. Aber ich wollte nicht warten. Deshalb suchte ich bei CODE PROJECT nach den Schlüsselwörtern (kbhit, getch, GetKey), um eine schnelle Lösung zu finden. Aber ich fand leider nichts brauchbares! Deshalb musste ich mich selbst drum kümmern, und hier ist meine Lösung.

manib.ma.funpic.de

Einfach Sprache auswählen, "Programmierung" anklicken und dem Link "ConsoleLibrary" folgen.

Viel Spass...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Programm ist keine reine .NET-Bibliothek, sondern verwendet native code. Es ist damit in _reinen_ .NET Projekten nicht problemlos einsetzbar, da alle Assemblies mit native code oder PInvoke Aufrufen immer als unsicher eingestuft werden (sie können nicht auf Vertrauenswürdigkeit verifiziert werden), es sei den der Benutzer vertraut ihnen explizit. Auch eine Verwendung z.B. in Verbindung mit Mono ist dadurch nicht grundsätzlich möglich.

Aber auch schon ein einfacher Start des Programms über eine Netzwerkfreigabe scheitert an den Default-Einstellungen der .NET-Umgebung und wirft eine Exception.

Die Vorgehensweise ist daher nur für Programme geeignet, bei denen von Anfang an geplant ist einzelne Teile mit native Code umzusetzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Bubble,

ich muss dir Recht geben.

Aber gibt es in C# für sowas:


do
{
// get the key...
key = Keyboard.GetKey();
// check the key...
if (key != (int)KeyCode.KeyNone)
{
if (key == (int)KeyCode.KeyF1)
Console.WriteLine("You've pressed F1.");
}

// do something else
...
} while (key!=(int)KeyCode.KeyEscape);
[/PHP]

eine andere Lösung wie so ein Library?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...