Форум: "WinAPI";
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];
ВнизБлокировка клавиш! Найти похожие ветки
← →
Юрий Зотов (2002-01-08 20:14) [11]> Vovchik © (08.01.02 19:05)
Открываем MSDN (раздел LowLevelKeyboardProc), жмем кнопку Requirements и читаем:
Windows NT/2000 or later: Requires Windows NT 4.0 SP3 or later.
Windows 95/98/Me: Unsupported.
А в хелпе Win32 ловушек типа WH_XXX_LL я и вовсе не нашел. Причина, видимо, в том, что низкоуровневые ловушки появились позже, чем был написан этот хелп.
Остается разве что добавить 2 вещи.
1. Win9x/ME НЕ КРИВЫЕ, они просто ДРУГИЕ.
2. Я предпочитаю писать код, который работает в ЛЮБОЙ Win32 и с ЛЮБЫМ SP. А что предпочитаете Вы - это дело Ваше.
По поводу разделения адресных пространств.
> По хорошему должно быть сделано так, чтобы сначала клавиши
> хватало ядро, которое потом смотрит, чего в очереди
> обслуживания клавиш есть, и отдаёт...
Так оно и сделано. Но никто же не виноват в том, что Вы засунули хэндл окна в переменную внутри DLL, а потом почему-то захотели, чтобы этот хэндл был доступен ВСЕМ процессам. Это же DLL, у нее нет СОБСТВЕННОГО адресного пространства, она использует адресное пространство самой программы. И это ГЛОБАЛЬНЫЙ хук, он обслуживает ВСЕ процессы - а они ИЗОЛИРОВАНЫ и, значит, он ДОЛЖЕН быть спроецирован в КАЖДЫЙ, иначе он просто НЕ СМОЖЕТ быть ГЛОБАЛЬНЫМ. А поскольку никакая другая программа, кроме Вашей, SetWindowsHookEx не вызывала, то и взять им этот хэндл негде. То есть, что Вы сами написали - то и получили.
И по поводу возгласов типа "отстой", "масдай", "надстройка над DOS" и других подобных.
Кричать мы все горазды. Но сделайте СВОЕ и сделайте ЛУЧШЕ. Вот когда Вы это СДЕЛАЕТЕ - тогда и получите право так говорить. А до тех пор - извините, но лучше помолчать.
Страницы: 1 2 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c