Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Эмуляторы отечественных компьютеров (http://zx-pk.ru/forumdisplay.php?f=61)
-   -   Эмулятор УКНЦ (http://zx-pk.ru/showthread.php?t=6257)

Alex_K 16th October 2011 14:03

Quote:

Originally Posted by Titus (Post 425067)
F10 - чем системная?

Выход в меню, как по Alt. Так же при ее нажатии и отжатии генерируются сообщения WM_SYSKEYDOWN и WM_SYSKEYUP. Но в эмуляторе это не обрабатывается. Текущее состояние клавиш берется с помощью функции GetKeyBoardState. Так что формально их можно обрабатывать, но в процедуре обработки сообщений эти сообщения придется резать, чтобы не передавать в DefWindowProc.

Titus 16th October 2011 14:11

Quote:

Originally Posted by Alex_K (Post 425071)
Выход в меню, как по Alt. Так же при ее нажатии и отжатии генерируются сообщения WM_SYSKEYDOWN и WM_SYSKEYUP. Но в эмуляторе это не обрабатывается. Текущее состояние клавиш берется с помощью функции GetKeyBoardState. Так что формально их можно обрабатывать, но в процедуре обработки сообщений эти сообщения придется резать, чтобы не передавать в DefWindowProc.

О, я даже про F10 не знал. Про Alt - да. В принципе, можно Alt и F10 использовать по своему усмотрению, если отключать ихние системные функции. А вот клавишу 'Windows' вроде так использовать нельзя.

Alex_K 16th October 2011 14:30

Quote:

Originally Posted by Titus (Post 425074)
О, я даже про F10 не знал. Про Alt - да. В принципе, можно Alt и F10 использовать по своему усмотрению, если отключать ихние системные функции. А вот клавишу 'Windows' вроде так использовать нельзя.

http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

Еще существуют всевозможные HOOK-и - http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx

Но все это конечно усложняет программирование.

Titus 16th October 2011 14:32

Quote:

Originally Posted by Alex_K (Post 425079)
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

Еще существуют всевозможные HOOK-и - http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx

Но все это конечно усложняет программирование.

Первое я читал. А хуки как к клавишам относятся?

Alex_K 16th October 2011 14:40

Quote:

Originally Posted by Titus (Post 425080)
Первое я читал. А хуки как к клавишам относятся?

Так ведь можно делать перехват клавиш с помощью WH_KEYBOARD_LL и WH_KEYBOARD. А далее по цепочке можно передать измененные данные или вообще не передавать. Теоретически можно перехватить и "флажок", на практике не пробовал. Только если использовать перехват для всех приложений, то функция перехвата должна быть в DLL. Но это все описано в msdn. Кстати "флажок" генерирует сообщения WM_KEYDOWN и WM_KEYUP, так что скорее всего он перехватывается explorer-ом с помощью HOOK-ов.

Titus 16th October 2011 14:45

Quote:

Originally Posted by Alex_K (Post 425082)
Но это все описано в msdn.

Если б msdn был легко читаем, то да, сиди, да листай)

Alex_K 16th October 2011 14:48

Quote:

Originally Posted by Titus (Post 425084)
Если б msdn был легко читаем, то да, сиди, да листай)

Согласен. Я когда-то изучал WinAPI16 в Windows 3.x. Книга была хорошей, все расписано и разжевано. В WinAPI32 примерно осталось так же, так что кое-что припоминается. А с нуля читать msdn сложновато.

Titus 16th October 2011 14:55

Quote:

Originally Posted by Alex_K (Post 425087)
Согласен. Я когда-то изучал WinAPI16 в Windows 3.x. Книга была хорошей, все расписано и разжевано. В WinAPI32 примерно осталось так же, так что кое-что припоминается. А с нуля читать msdn сложновато.

Хорошо бы какую-нить книжку для чайников. Чтобы основные понятия описаны, а за подробностями в MSDN. А то иногда приходится что-то программировать под винду, и на изучение особенностей уходит много времени, по скольку в этой среде я не варюсь, а затрагиваю лишь иногда.

Vamos 16th October 2011 14:56

Хорошо, F10 можно пропустить т.е. F7 F8 F9 F11 F12, "флажок" не трогаем (клавиша ГРАФ), остается только Alt.
Извините я чего-то туплю, со знаками препинания в чем проблема? Они вроде и так работают только не все на своих местах.

Alex_K 16th October 2011 15:07

Quote:

Originally Posted by Vamos (Post 425091)
Извините я чего-то туплю, со знаками препинания в чем проблема? Они вроде и так работают только не все на своих местах.

Как я писал выше, набор {; 1 2 3 4 5 6 7 8 9 0 - / : , .} обязательно должен быть в верхнем регистре, а набор {+ ! " #$ % & ' ( ) = ? * < >} в нижнем. Также в верхнем регистре должны быть {@ ^ _}, а в нижнем {` ~}. С набором {[ { ] } \ |} всё в порядке, на клавиатуре PC они соответствуют клавиатуре УКНЦ.
Это требование исходит из особенностей работы драйвера клавиатуры в системном ПЗУ УКНЦ. Так как раскладка переключается в зависимости от содержания ячеек 7214 (регистр, их пять: основной, НР, ГРАФ, УПР, ФИКС) и 22556 (РУС или ЛАТ) в ОЗУ ПП.


All times are GMT +4. The time now is 02:54.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.