示例#1
0
 new void KeyUp(object sender, GlobalHook.MyEventArgs e)
 {
     if (e.e.Key == Key.LeftAlt)
     {
         alt = false;
     }
 }
示例#2
0
        static HashSet <Key> hs = new HashSet <Key>();               //словарь нажатых клавиш
        static void KeyDown(object sender, GlobalHook.MyEventArgs e) //любая кнопка нажата
        {
            if (!hs.Contains(e.e.Key))                               //если такая кнопка не нажата, то записываем её и продолжаем
            {
                hs.Add(e.e.Key);
            }
            else//если кнопка уже была нажата - выходим
            {
                return;
            }
            var bnds = MainWindow.Binds.Where(b => b.Keys.Contains(e.e.Key == Key.System?e.e.SystemKey:e.e.Key)); //ищем бинды, где кнопка соответствует

            foreach (var b in bnds)                                                                               //береьираем эти бинды
            {
                //если нажаты все необходимые кнопки
                if (b.Enable && b.Keys.All(k => hs.Contains(k)))
                {
                    try
                    {
                        string scr = "";
                        if (b.IsToggle)                                        //Если это бинд переключатель
                        {
                            scr         = b.TogglePos ? b.Script1 : b.Script2; //выбираем скрипт
                            b.TogglePos = !b.TogglePos;                        //переключаем
                            b.UpdateBacks();                                   //обновляем задний фон для его скриптов
                        }
                        else//обычный бинд
                        {
                            scr = b.Script1;                            //просто берём и выполняем
                        }
                        int code = LoadFuncsRunScripts.ExecScript(scr); //выполняем скрипт
                        switch (code)
                        {
                        case 1:    //1 - эксклюзивный бинд
                            e.Handled = true;
                            break;
                        }
                    }
                    catch (Exception ex)//логгер ошибок
                    {
                        string crashLog = string.Join(null, Enumerable.Repeat(Environment.NewLine, 5));
                        crashLog += DateTime.Now.ToString() + Environment.NewLine + ex.ToString();
                        File.AppendAllText(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Binder\crashLogs.txt", crashLog);
                        MessageBox.Show("Во время выполнения произошла ошибка, откройте файл лога для большей информации", "Ошибка");
                    }
                }
            }
        }
示例#3
0
 new void KeyDown(object sender, GlobalHook.MyEventArgs e)
 {
     if (e.e.Key == Key.LeftAlt)
     {
         alt = true;
     }
     if (e.e.Key == Key.S && alt)
     {
         if (hooked)
         {
             UNHOOK();
             RecordText.Text     += string.Join("", cmds);
             RecordingLab.Content = "";
         }
         else
         {
             cmds.Clear();
             HOOK();
             RecordingLab.Content = "Идёт запись...";
         }
         hooked = !hooked;
     }
 }
示例#4
0
 static void KeyUp(object sender, GlobalHook.MyEventArgs e) //кнопка поднята
 {
     hs.Remove(e.e.Key);                                    //удаляем её из слоавря
 }