2012-04-05 9 views
2

Ich muss von Keys zu Zeichenfolgen konvertieren, die in der Sendkeys-Methode verwendet werden. Probe:Gibt es einen einfachen Weg (Wrapper/Dictionary) von Keys Enum zu SenKeys String zu konvertieren?

Key.ENTER auf {ENTER}

Gibt es eine einfache Möglichkeit, das zu tun? Ich konnte es nicht finden.

if (key == Key.Enter) 
    SendKeys.SendWait({ENTER}); 

ich tomething müssen, die alle Schlüssel konvertieren .. Wenn Taste == Schlüssel, ich will nur senden. Aber wenn es eine Befehls-Taste ist (zB: Key.Enter), muss ich es höher machen und {} hinzufügen.

+0

In einem Szenario, wie dies Sie vielleicht prüfen wollen machen Ihre eigene Mapping-Bibliothek (wenn Sie in der Tat nicht finden können) und darüber nachdenken, in einen Windowsapi-Aufruf zu fallen Geben Sie den Schlüsselcode durch, anstatt "SendKeys" zu verwenden und sich alle Probleme zu ersparen. –

Antwort

1

Eine Möglichkeit, den Key Standard enumerator in eine Wrapper-Klasse wickeln könnte, mit diesem Ansatz können Sie eine ToString() Methode erstellen, die den Aufzählungswert in einen String umwandeln.

Werfen Sie einen Blick auf dieses Beispiel:

Enum-Wrapper-Klasse

class KeyEnumWrapper { 
     public System.Windows.Forms.Keys key { get; set; } 

     public KeyEnumWrapper(System.Windows.Forms.Keys key) { 
      this.key = key; 
     } 

     public string ToString() { 
      return "{" + key.ToString().ToUpper() + "}"; 
     } 
    } 

Client (Nutzung)

private void Form1_KeyUp(object sender, KeyEventArgs e) { 
      KeyEnumWrapper wp = new KeyEnumWrapper(e.KeyCode); 
      SendKeys.SendWait(wp.ToString()) 
     } 
+0

die "{}" ist nicht für alle Schlüssel (http://msdn.microsoft.com/pt-br/library/system.windows.forms.sendkeys.aspx), aber danke für die ideia. – Pedro77

+0

sinse gibt es keine Antworten mehr. – Pedro77

0
Key.Enter.ToString().ToUpper() 
+0

Danke, aber ich muss herausfinden, ob es eine Befehlstaste ist oder nicht, für alle Schlüssel. Wenn es eine Befehlsschlüssel ist, kann ich tun, was Sie sagten, aber es wird nicht für alle Schlüssel funktionieren. – Pedro77

+0

@ Pedro77: vielleicht verstehe ich deinen Standpunkt nicht. Welche Befehlstasten werden Sie verarbeiten? – Tigran

Verwandte Themen