Re[9]: WM_KEYDOWN на две клавиши
От: Аноним  
Дата: 23.06.03 10:40
Оценка:
Здравствуйте, Alexmoon, Вы писали:

A>Здравствуйте, Alexmoon, Вы писали:


A>>[MSDN]

A>>24-бит значения LPARAM — Specifies whether the key is an extended key, such as the right-hand ALT and CTRL keys that appear on an enhanced 101- or 102-key keyboard. The value is 1 if it is an extended key; otherwise, it is 0.
A>>[/MSDN]


К сожалению все это несколько не в кассу: данный параметр показывает является ли нажатая клавиша расширенной — т.е. правым ALT или правым CTRL а не комбинацией.
Последовательное нажатие сначала Shift потом '/' тоже не проходит:
PostMessage(hwork,WM_KEYDOWN,(WPARAM)0x10,0x002a0001); // нажат Shift
PostMessage(hwork,WM_KEYDOWN,(WPARAM)0xbf,0x00350001); // нажат '/'
PostMessage(hwork,WM_KEYUP,(WPARAM)0xbf,0xC0350099);
PostMessage(hwork,WM_KEYUP,(WPARAM)0x10,0xC02a0001);

Причем данные сообщения я ловлю в Spy когда вручную печатаю знак вопроса в чужой программе. Но программный посыл их из моей программы не проходит — печатается знак '/'


По поводу GetKeyState — в том то и дело что обработчик сообщений НЕ МОЙ. Ежели б я отлавливал комбинацию то было бы все просто, анализировал бы данной функцией нажатия клавиш и все ок, вся головная боль в том что надо посылать в ЧУЖУЮ программу, которая реагирует токо на WM_KEYDOWN, а для чужой проги я немогу установить SetKeyState



A>Если все таки lParam не даст желаемого результата, то тебе поможет раздел — Keyboard Input Functions:


A>GetKeyState и все тому подобное.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.