CHARTEVENT_KEYDOWN - страница 2

 
Valeriy Yastremskiy:

У капслок нет состояния нажатой, она как нумлок в состоянии Включена Выключена. А Ктрл именно состояние нажатой, как и Альт и Шифт. А вот почему не нажимаются клавиши, не понятно в каком состоянии нажимаете. В терминале, или на сайте. Ктрл R  на сайте работает и Лефт тоже.

Ну а работает наоборот, Ctrl работает так, как должен работать Caps Lock и наоборот. 

Shift работает как надо, а  Caps Lock работает как Shift. А Ctrl работает не как Shift.

 
Dmitry Fedoseev:

Ну а работает наоборот, Ctrl работает так, как должен работать Caps Lock и наоборот. 

Shift работает как надо, а  Caps Lock работает как Shift. А Ctrl работает не как Shift.

Иногда виртуальная клавиатура или тестеры клавы помогают, они отражают что происходит при нажатии. вообще у каждой клавиши 4 состояния, нажата, отжата, и была нажата, не была нажата.

Key-Test - тест клавиатуры онлайн
Key-Test - тест клавиатуры онлайн
  • key-test.ru
У меня не работает кнопка на клавиатуре. Уточнить механическая или программная это проблема. Для этого можно использовать наш сервис для тестирования клавиатуры онлайн. (Если в результате теста клавиатуры, проблема сохраняется, то поломка механическая) Я пролил жидкость на клавиатуру. Если у вас ноутбук, отключите питание и выньте батарею...
 
Pavel Verveyko:

А keybd_event случайно не планируется внедрять ?
что бы можно было программно без DLL, переключаться между листами ?

Нет
 
Valeriy Yastremskiy:

Иногда виртуальная клавиатура или тестеры клавы помогают, они отражают что происходит при нажатии. вообще у каждой клавиши 4 состояния, нажата, отжата, и была нажата, не была нажата.

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam){
                  
   if(id==CHARTEVENT_KEYDOWN && lparam==90){
      if(TerminalInfoInteger(TERMINAL_KEYSTATE_SHIFT)<0){
         Comment(GetTickCount()," Shift+Z");
      }
      else{
         Comment(GetTickCount()," Z");
      }
   }
}

Этоn код реагирует на нажатие клавиши Z и на сочетание Shift+Z. Потом замените TERMINAL_KEYSTATE_SHIFT на TERMINAL_KEYSTATE_CONTROL и заметьте разницу.

 
Dmitry Fedoseev:

Этоn код реагирует на нажатие клавиши Z и на сочетание Shift+Z. Потом замените TERMINAL_KEYSTATE_SHIFT на TERMINAL_KEYSTATE_CONTROL и заметьте разницу.

что то не то точно. с заменой на 

if(TerminalInfoInteger(TERMINAL_KEYSTATE_CONTROL)<=0){

реагирует на: была нажата / не была нажата)))) Это видимо в баги ошибки вопрос. Если просто меньше нуля, то при нажатой Ктрл не реагирует на нажатие Z. 

с шифтом все норм. При нажатом шифт фиксит нажатие Z, и при просто нажать Z .

ЗЫ А что Альт не программируется, не нашел в списке)

 
Valeriy Yastremskiy:

что то не то точно. с заменой на 

реагирует на: была нажата / не была нажата)))) Это видимо в баги ошибки вопрос. Если просто меньше нуля, то при нажатой Ктрл не реагирует на нажатие Z. 

с шифтом все норм. При нажатом шифт фиксит нажатие Z, и при просто нажать Z .

ЗЫ А что Альт не программируется, не нашел в списке)

Про Alt в справке ничего нет. Но за то вот, что есть: "Вызов TerminalInfoInteger(TERMINAL_KEYSTATE_XXX) возвращает такой же код состояния клавиши, как и функция GetKeyState() из MSDN". Может оно и вправду так работает, не знаю, не пробовал. Но тогда зачем это? Из всего этого только Shift полезен. Впрочем, хоть что-то.

 
Dmitry Fedoseev:

Про Alt в справке ничего нет. Но за то вот, что есть: "Вызов TerminalInfoInteger(TERMINAL_KEYSTATE_XXX) возвращает такой же код состояния клавиши, как и функция GetKeyState() из MSDN". Может оно и вправду так работает, не знаю, не пробовал. Но тогда зачем это? Из всего этого только Shift полезен. Впрочем, хоть что-то.

Не до пилили. Возможно не смогли что либо отключить ОСное на них. если Альта и Вин нет, а в МСДН они есть. Шифт одинаково везде работает. А эти имеют управление системой. Ктрл Z отмена действия. Что бы не конфликтовать. 

 
А, вон оно что. Понял. С Ctrl существует куча сочетаний по управлению графиком, почти все буквы заняты. Пока одну свободную клавишу нашел. Да, не помешало бы в справке отразить сие.