Показать сообщение отдельно
Старый 21.01.2014, 23:25   #203
Andrey_61
Старший Пользователь
 
Регистрация: 25.03.2010
Возраст: 41
Регион: 61
Машина: FF2
Сообщений: 228
Andrey_61 is just really niceAndrey_61 is just really niceAndrey_61 is just really niceAndrey_61 is just really niceAndrey_61 is just really nice
По умолчанию

Народ, на тему Alt+Tab не совсем верный алгоритм.
Надо не отправлять Alt+Tab постоянно, а зажать Alt и удерживая его отправлять Tab

вот кусок моего кода при получении команды с ИК-пульта (требуется доп библиотека Timer.h)
Код для Leonardo, но думаю можно адаптировать и под UNO

Код:
boolean altTabFirstPress = HIGH; //Первое нажатие alt+tab
int altTabTimer; //Таймер ALT+TAB

....
    if(событие){   
      if(boolean(altTabFirstPress)==HIGH){ //Если это нажатие первое 
        altTabTimer = timer.after(1000, resetAltTab); //Запускаем таймер (1000мс) сброса ALT+TAB 
        altTabFirstPress = LOW; //Сбрасываем переменную
        Keyboard.press(KEY_ALT); //Нажимаем Alt
        Keyboard.press(KEY_TAB); //Нажимаем Tab
        Keyboard.release(KEY_TAB); //Отпускаем Alt
      }
      else{ //Если это нажатие НЕ первое 
        timer.stop(altTabTimer); //Останавливаем таймер сброса ALT+TAB
        Keyboard.press(KEY_TAB); //Нажимаем Tab
        Keyboard.release(KEY_TAB); //Отпускаем Tab 
        altTabTimer = timer.after(1000, resetAltTab); //Запускаем таймер сброса ALT+TAB снова      
      }
....

//отпускаем Alt+Tab
void resetAltTab (){
  altTabFirstPress = HIGH; //Устанавливаем переменную
  Keyboard.releaseAll(); //Отпускаем все кнопки, для UNO как я понимаю придется прописать каждую кнопку отдельно
}
__________________
Nexus in Focus
Andrey_61 вне форума   Ответить с цитированием