//настройки программы private void Settings_Click(object sender, RoutedEventArgs e) { stw = new SettingsWindow(); //создаём новое окно настроек //загружаем все настройки в окно настроек stw.SelectAutoBindsPath.IsEnabled = sets.haveDefaultBindsPath; //включаем выбор бинда поумолчанию, если надо stw.DefaultBindsPath.IsEnabled = sets.haveDefaultBindsPath; //включаем выбор бинда поумолчанию, если надо stw.AutoOpenBinds.IsChecked = sets.haveDefaultBindsPath; //включаем выбор бинда поумолчанию, если надо stw.DefaultBindsPath.Text = sets.defaultBindsPath; //вставляем путь до бинда по стандарту stw.AutorunCheckBox.IsChecked = sets.autoRun; //включаем/выключаем автозапуск stw.RunHided.IsChecked = sets.AutoRunHided; //включаем/выключаем скрытый запуск //при нажатии не чекбокс с выбором биндов поумолчанию stw.AutoOpenBinds.Click += (object seneder, RoutedEventArgs eBinds) => { stw.SelectAutoBindsPath.IsEnabled = stw.AutoOpenBinds.IsChecked.Value; stw.DefaultBindsPath.IsEnabled = stw.AutoOpenBinds.IsChecked.Value; sets.haveDefaultBindsPath = stw.AutoOpenBinds.IsChecked.Value; }; //при нажатии на кнопку выбора пути к файлу stw.SelectAutoBindsPath.Click += (object seneder, RoutedEventArgs eBinds) => { OpenFileDialog ofd = new OpenFileDialog() { FileName = lastOpenPath, DefaultExt = ".xml", Filter = "XML Files (.xml)|*.xml" }; //диалог открытия файла if (ofd.ShowDialog().Value) //если открыли { sets.defaultBindsPath = ofd.FileName; stw.DefaultBindsPath.Text = ofd.FileName; } }; //при изменении значения автозапуска stw.AutorunCheckBox.Click += (object seneder, RoutedEventArgs eBinds) => { sets.autoRun = stw.AutorunCheckBox.IsChecked.Value; SettingClass.UnRegisterAutoRun(); if (sets.autoRun) { SettingClass.RegisterAutoRun(); } }; //при изменении скрытого запуска stw.RunHided.Click += (object seneder, RoutedEventArgs eBinds) => { sets.AutoRunHided = stw.RunHided.IsChecked.Value; }; stw.Closing += (object seneder, System.ComponentModel.CancelEventArgs eBinds) => { SaveSets(); }; stw.ShowDialog(); stw.Activate(); }
//тут все ссылочные переменные, на которые надо поставить игнор //public Border bind = null;//основной элемент бинда //public Canvas can = null;//канвас, где все элементы бинда //public DockPanel NameDock = null;//док, где имя и кнопка редактирования имени //public Label nameLab = null;//лейбел имени бинда //public Label script1Lab = null;//лейбел для скрипта 1 бинда //public Label script2Lab = null;//лейбел для скрипта 2 бинда //public Button EnableButton = null;//кнопка включения/выключения бинда //public CheckBox IsToggleCheck = null;//комбобокс с выбором модификатора бинда //public DockPanel ChooseBindDock = null;//док, для хранения бинда //public TextBlock keyText = null;//текстблок для кнопки бинда //public ComboBox comboModifier1 = null;//комбобокс с выбором модификатора бинда1 //public ComboBox comboModifier2 = null;//комбобокс с выбором модификатора бинда2 public MainWindow()//конструктор этого окна { //подготавливаем сериализер для биндов { var overrides = new XmlAttributeOverrides(); var ignore = new XmlAttributes { XmlIgnore = true }; overrides.Add <Bind>(m => m.bind, ignore); overrides.Add <Bind>(m => m.can, ignore); overrides.Add <Bind>(m => m.ChooseBindDock, ignore); overrides.Add <Bind>(m => m.comboModifier1, ignore); overrides.Add <Bind>(m => m.comboModifier2, ignore); overrides.Add <Bind>(m => m.EnableButton, ignore); overrides.Add <Bind>(m => m.IsToggleCheck, ignore); overrides.Add <Bind>(m => m.keyText, ignore); overrides.Add <Bind>(m => m.NameDock, ignore); overrides.Add <Bind>(m => m.nameLab, ignore); overrides.Add <Bind>(m => m.script1Lab, ignore); overrides.Add <Bind>(m => m.script2Lab, ignore); Type t = typeof(Bind[]); xsBinds = new XmlSerializer(t, overrides); } if (Application.ResourceAssembly.Location.Split('\\').Last() != "Binder.exe")//возвращаем наше имя { File.Move(Application.ResourceAssembly.Location, Application.ResourceAssembly.Location.Replace(Application.ResourceAssembly.Location.Split('\\').Last(), "Binder.exe")); } if (Process.GetProcessesByName("Binder").Length > 1) { Application.Current.Shutdown(); } InitializeComponent(); OpenOrCreateSets();//загружаем настройки //применяем настройки if (sets.haveDefaultBindsPath) { try { OpenInPath(sets.defaultBindsPath); } catch//если не удалось открыть или найти файл сохранки то убираем это { MessageBox.Show("Файл " + sets.defaultBindsPath + " не найден!"); sets.defaultBindsPath = ""; sets.haveDefaultBindsPath = false; } } SettingClass.UnRegisterAutoRun(); if (sets.autoRun) { SettingClass.RegisterAutoRun(); } Hook.SetHook();//запускаем хукер ShowWindow(); Show(); if (sets.AutoRunHided) { HideWindow(); } LoadFuncsRunScripts.LoadScripts(); main = this; MouseHook.MouseMove += MousePos;//ставим обработчик //MouseHook.LocalHook = false; }