myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

C# String zum Key

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 04.05.10, 17:32   #1
Linaks
Anfänger
 
Registriert seit: Dec 2009
Beiträge: 7
Bedankt: 2
Linaks ist noch neu hier! | 0 Respekt Punkte
Standard C# String zum Key

Hallo liebe User,
Ich habe seit langer Zeit ein Problem das mich ne Weile beschäftigt.
Es geht um Hotkeys und Strings..

Was ich machen will:

Ich habe jetzt diesen Code:


Code:
        UserActivityHook lisa = new UserActivityHook(false, true);
        Keys[] hotkeys;

        public MainForm()
        {
            InitializeComponent();

            hotkeys = new Keys[80];
            lisa.KeyDown += new KeyEventHandler(lisa_KeyDown);
        }



        private void LadenButton_Click(object sender, EventArgs e)
        {

            XmlDocument configdoc = new XmlDocument();
            configdoc.Load("Config.xml");

            XmlNode hottaste = configdoc.SelectSingleNode("/BindConfig/Hotkey0");
            hotkeys[0] = Keys.None; //Hier soll der Convert von String zum Key stattfinden
        }


        private void SpeichernButton_Click_1(object sender, EventArgs e)
        {

            XmlTextWriter keybinderconfig = new XmlTextWriter("Config.xml", System.Text.Encoding.UTF8);
            keybinderconfig.Formatting = Formatting.Indented;
            keybinderconfig.WriteStartDocument(false);

            keybinderconfig.WriteStartElement("BindConfig");
            keybinderconfig.WriteElementString("HotKey0", hotkeys[0].ToString());
       }
Was ich versucht habe beim Laden war:

hotkeys[0] = hottaste.InnerText; //wobei hier nur der String geladen wird und zu einem error kommt. Ich will jedoch das er den String in den Key konvertiert


Danke im Vorraus...
Linaks ist offline   Mit Zitat antworten
Ungelesen 04.05.10, 18:58   #2
urga
Mitglied
 
Benutzerbild von urga
 
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
urga ist noch neu hier! | 0 Respekt Punkte
Standard

vielleicht hilft dir ja das hier weiter:
Code:
Keys k = (Keys) ' '; 
MessageBox.Show (k.ToString());
k = (Keys) 'a'; // liefert allerdings NumPad1
MessageBox.Show (k.ToString ());
k = (Keys) 'A'; 
MessageBox.Show (k.ToString ());
ansonsten google mal nach keysconverter.
__________________
entropie erfordert keine wartung
urga ist offline   Mit Zitat antworten
Ungelesen 04.05.10, 20:05   #3
Linaks
Anfänger
 
Registriert seit: Dec 2009
Beiträge: 7
Bedankt: 2
Linaks ist noch neu hier! | 0 Respekt Punkte
Standard

Du hast es eaber eher vom Key zum String konvertiert.
Hmm Keysconverter kenn ich schon.. Werde mal morgen googel aber hoffe hier trotzdem noch eine Lösung ^^
Linaks ist offline   Mit Zitat antworten
Ungelesen 04.05.10, 20:10   #4
urga
Mitglied
 
Benutzerbild von urga
 
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
urga ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Du hast es eaber eher vom Key zum String konvertiert.
???

nein.
k = (Keys) 'A';
von char nach Keys durch das cast. btw. den typ Key gibt es nicht.

übrigens: wie soll denn dein string aussehen, der z.b. SHIFT-A, CURSOR-UP, STRG-C, ALT-F, o.ä. repräsentiert ?
__________________
entropie erfordert keine wartung
urga ist offline   Mit Zitat antworten
Ungelesen 04.05.10, 23:05   #5
Linaks
Anfänger
 
Registriert seit: Dec 2009
Beiträge: 7
Bedankt: 2
Linaks ist noch neu hier! | 0 Respekt Punkte
Standard

Es gibt keine STRG+A oder ALT+S etc.
Einfach alle Tasten auf der Tastatur..

Kurz: Keys im String speichern e.KeyCode - beim LadenButton die Keys vom String zum Key konvertieren und laden!
Linaks ist offline   Mit Zitat antworten
Ungelesen 05.05.10, 18:50   #6
urga
Mitglied
 
Benutzerbild von urga
 
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
urga ist noch neu hier! | 0 Respekt Punkte
Standard

vielleicht hilft dir ja folgendes:
erstell ein neues forms projekt, und füge 2 textboxen (multiline und vertikalen scrollbalken)
hinzu.
immerhin kann man einen int nach Keys konvertieren. String selbst sieht schlecht aus.
zur not 1/2h fleißarbeit und sowas selbst basteln....
Code:
public Form1 () {
      InitializeComponent ();

      List<int> ints = new List<int> ();
      foreach (Keys k in Enum.GetValues(typeof(Keys))) {
        ints.Add ((int) k);
       
        this.textBox1.Text += k.ToString() + "\r\n";
      }
      foreach (int i in ints) {
        // hier kann man tatsaechlich casten! 
        Keys k = (Keys) i;
        this.textBox2.Text += k.ToString () + " == " + 
          i.ToString () + "\r\n";
      }
    }
__________________
entropie erfordert keine wartung
urga ist offline   Mit Zitat antworten
Ungelesen 05.05.10, 22:35   #7
Linaks
Anfänger
 
Registriert seit: Dec 2009
Beiträge: 7
Bedankt: 2
Linaks ist noch neu hier! | 0 Respekt Punkte
Standard

Danke habs selber durch Shortcuts gelöst
trootzdem für jeden post ein thanks
Linaks ist offline   Mit Zitat antworten
Ungelesen 06.05.10, 20:42   #8
nooneonearth
Anfänger
 
Registriert seit: Jul 2009
Beiträge: 10
Bedankt: 10
nooneonearth putzt sich die Zähne mit Knoblauch. | 2870 Respekt Punktenooneonearth putzt sich die Zähne mit Knoblauch. | 2870 Respekt Punktenooneonearth putzt sich die Zähne mit Knoblauch. | 2870 Respekt Punktenooneonearth putzt sich die Zähne mit Knoblauch. | 2870 Respekt Punktenooneonearth putzt sich die Zähne mit Knoblauch. | 2870 Respekt Punktenooneonearth putzt sich die Zähne mit Knoblauch. | 2870 Respekt Punktenooneonearth putzt sich die Zähne mit Knoblauch. | 2870 Respekt Punktenooneonearth putzt sich die Zähne mit Knoblauch. | 2870 Respekt Punktenooneonearth putzt sich die Zähne mit Knoblauch. | 2870 Respekt Punktenooneonearth putzt sich die Zähne mit Knoblauch. | 2870 Respekt Punktenooneonearth putzt sich die Zähne mit Knoblauch. | 2870 Respekt Punkte
Standard

Ich hätte ja mit Enum.Parse(Type, String, Boolean) gearbeitet, das dir einen String in den gewünschten enum-Wert konvertiert. TryParse kann helfen, einen vorhergehenden Check durchzuführen, mit ToString kannst du die Werte zuvor Speichern.
Summa summarum:
  • XML-Datei speichern, dabei ToString für die enum-Werte verwenden.
  • Mit Parse die String-Werte beim Lesen zurück konvertieren.
nooneonearth ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:02 Uhr.


Sitemap

().