Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
04.05.10, 17:32
|
#1
|
Anfänger
Registriert seit: Dec 2009
Beiträge: 7
Bedankt: 2
|
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...
|
|
|
04.05.10, 18:58
|
#2
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
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
|
|
|
04.05.10, 20:05
|
#3
|
Anfänger
Registriert seit: Dec 2009
Beiträge: 7
Bedankt: 2
|
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 ^^
|
|
|
04.05.10, 20:10
|
#4
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
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
|
|
|
04.05.10, 23:05
|
#5
|
Anfänger
Registriert seit: Dec 2009
Beiträge: 7
Bedankt: 2
|
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!
|
|
|
05.05.10, 18:50
|
#6
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
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
|
|
|
05.05.10, 22:35
|
#7
|
Anfänger
Registriert seit: Dec 2009
Beiträge: 7
Bedankt: 2
|
Danke habs selber durch Shortcuts gelöst 
trootzdem für jeden post ein thanks
|
|
|
06.05.10, 20:42
|
#8
|
Anfänger
Registriert seit: Jul 2009
Beiträge: 10
Bedankt: 10
|
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.
|
|
|
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
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:02 Uhr.
().
|