Захват Ctrl + Shift + Esc до того, как это сделает диспетчер задач

Я использую Windows API (SetWindowsHookEx) для захвата событий клавиатуры. Я хотел бы передать своему приложению комбинацию Ctrl + Shift + Esc для обработки, но подавить появление диспетчера задач.

К сожалению, похоже, что комбинация из трех клавиш никогда не доходила до моей рутины Keyboard Hook; Я получаю только два ключа.

Я не хочу подавлять диспетчер задач глобально, только для моего приложения.

Есть ли способ сделать это?


person Guillermo Phillips    schedule 05.05.2010    source источник
comment
Вы используете глобальные хуки для отслеживания всех потоков?   -  person Paul    schedule 05.05.2010
comment
Не только поток приложений. Фактически: hHook1 = SetWindowsHookEx (& H2 &, AddressOf KeyboardProc, 0 &, App.ThreadID)   -  person Guillermo Phillips    schedule 05.05.2010
comment
Возможно, вы захотите взглянуть на эту ветку - stackoverflow.com/questions/1292165/ - и, в частности, эта ссылка из этого потока - tamaspiros.co.uk/2007/12/20/   -  person macbutch    schedule 05.05.2010


Ответы (1)


Только мои 2 цента, но я считаю, что это невозможно. Эта комбинация - своего рода последнее средство, и если приложения могут ее поймать, а затем зависнуть ... Я очень уверен, что это событие не доставляется обычными средствами. И даже если бы приложение могло это уловить ... Я бы сразу удалил его, потому что мешал мне работать.

Ловите Ctrl-Alt-Insert, если вам нужно предоставить аналогичный функционал.

person Daniel    schedule 05.05.2010
comment
Спасибо. Но я пишу эмулятор, так что в этом смысле это нестандартное приложение для Windows. В эмуляторе Ctrl + Shift приостанавливает прокрутку, а затем нажатие Escape прерывает прокрутку. - person Guillermo Phillips; 05.05.2010
comment
VMWare, LogMeIn также не ловят Ctrl-Alt-Delete (потому что они не могут), но Ctrl-Alt-Insert. Пользователи к этому привыкают. - person Daniel; 05.05.2010