private void Button_Register(object sender, RoutedEventArgs e) { foreach (KeyValuePair <int, HotKeyHanld> kv in HotKeyQueue) { Log(String.Format("UnregisterHotKey {0}", kv.Key)); kv.Value.AUnregisterHotKey(); } HotKeyQueue.Clear();// 清空 HotKeyQueue 字典 int id = 10000; foreach (StackPanel stackPanel in Sps) { int fsk; fsk = GetComboValue(stackPanel, out string vk, out string pass); if (fsk > 0) { int vki = VirtualKeys.VirtualKeyDict[vk].AsciiCode; HotKeyQueue.Add(id, new HotKeyHanld(hd, id, fsk, vki, Getaction(pass))); id += 1; defSettings[stackPanel.Name] = fsk.ToString() + vk + MyBase64.Base64Encode(pass); //保存配置 defSettings.Save(); } } List <int> keys = new List <int>(HotKeyQueue.Keys); for (int i = 0; i < keys.Count; i++) { Log(String.Format("RegisterHotKey {0}", keys[i])); HotKeyQueue[keys[i]].ARegisterHotKey(); } }
private void Window_Loaded(object sender, EventArgs e) { Sps.Add(hkA); Sps.Add(hkB); Sps.Add(hkC); Sps.Add(hkD); List <FsModKey> fsmodkey = new List <FsModKey> { }; fsmodkey.Add(new FsModKey { Name = "Alt", Value = 0x0001 }); fsmodkey.Add(new FsModKey { Name = "CtrL", Value = 0x0002 }); fsmodkey.Add(new FsModKey { Name = "Shift", Value = 0x0004 }); fsmodkey.Add(new FsModKey { Name = "Win", Value = 0x0008 }); foreach (StackPanel stackPanel in Sps) //绑定下拉框 { ComboBox combobox = VisualTreeHelper.GetChild(stackPanel, 0) as ComboBox; combobox.ItemsSource = fsmodkey; combobox.SelectedIndex = 0; } foreach (StackPanel stackPanel in Sps) //如果有 则加载配置 { string value = defSettings[stackPanel.Name].ToString(); if (value.Length < 3) { continue; } ComboBox combobox = VisualTreeHelper.GetChild(stackPanel, 0) as ComboBox; TextBox textbox = VisualTreeHelper.GetChild(stackPanel, 2) as TextBox; PasswordBox passwordbox = VisualTreeHelper.GetChild(stackPanel, 3) as PasswordBox; switch (value.Substring(0, 1)) { case "2": combobox.SelectedIndex = 1; break; case "1": combobox.SelectedIndex = 0; break; case "4": combobox.SelectedIndex = 2; break; case "8": combobox.SelectedIndex = 3; break; default: combobox.SelectedIndex = 0; break; } textbox.Text = value.Substring(1, 1); passwordbox.Password = MyBase64.Base64Decode(value.Substring(2)); } }