Здравствуйте, SpeedLover, Вы писали:
SL>Собственно в теме всё сказано. В добавку: нужно блокировать любые комбинации клавиш. По возможности отслеживать все действия с клавиатурой и мышкой.
Здравствуйте, Alexey_N, Вы писали:
A_N>Здравствуйте, SpeedLover, Вы писали:
SL>>Собственно в теме всё сказано. В добавку: нужно блокировать любые комбинации клавиш. По возможности отслеживать все действия с клавиатурой и мышкой.
A_N>Скажу рифмой: A_N>Хуки вам в руки !
чтобы стало понятнее, функция WinAPI SetWindowsHookEx и материалы по данной тематике. В .НЕТ, насколько я знаю, данная функция не реализована, использовать либо p/invoke самому, либо http://pinvoke.net/, однако я лично писал это на ++, не знаю, насколько все хорошо будет при обертке в .НЕТ.
--------------------------
less think — do more
Re[3]: Блокирование клавиатуры и мыши
От:
Аноним
Дата:
13.10.06 11:48
Оценка:
Здравствуйте, Pavel M., Вы писали:
PM>Здравствуйте, Alexey_N, Вы писали:
A_N>>Здравствуйте, SpeedLover, Вы писали:
SL>>>Собственно в теме всё сказано. В добавку: нужно блокировать любые комбинации клавиш. По возможности отслеживать все действия с клавиатурой и мышкой.
A_N>>Скажу рифмой: A_N>>Хуки вам в руки !
PM>чтобы стало понятнее, функция WinAPI SetWindowsHookEx и материалы по данной тематике. В .НЕТ, насколько я знаю, данная функция не реализована, использовать либо p/invoke самому, либо http://pinvoke.net/, однако я лично писал это на ++, не знаю, насколько все хорошо будет при обертке в .НЕТ.
Все нормально работает при обертывании, пишите смело.
Я лично делал небольшую свою dll на ++, и импортил свои функции через p/invoke.
Там было немного кода для более удобного использования установки хука и колбэка.
Здравствуйте, Pavel M., Вы писали:
PM>чтобы стало понятнее, функция WinAPI SetWindowsHookEx и материалы по данной тематике. В .НЕТ, насколько я знаю, данная функция не реализована, использовать либо p/invoke самому, либо http://pinvoke.net/, однако я лично писал это на ++, не знаю, насколько все хорошо будет при обертке в .НЕТ.
Абсолютно точно.
Чтобы сэкономить время на поиски даю линк.
Здравствуйте, Alexey_N, Вы писали:
A_N>Здравствуйте, Pavel M., Вы писали:
PM>>чтобы стало понятнее, функция WinAPI SetWindowsHookEx и материалы по данной тематике. В .НЕТ, насколько я знаю, данная функция не реализована, использовать либо p/invoke самому, либо http://pinvoke.net/, однако я лично писал это на ++, не знаю, насколько все хорошо будет при обертке в .НЕТ. A_N>Абсолютно точно. A_N>Чтобы сэкономить время на поиски даю линк.
Да, вот ещё один линк, тут по проще... Всем спасибо! Всё оказалась не так сложно...
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Pavel M., Вы писали:
А>Все нормально работает при обертывании, пишите смело. А>Я лично делал небольшую свою dll на ++, и импортил свои функции через p/invoke. А>Там было немного кода для более удобного использования установки хука и колбэка.
ой, совсем зашарпился Забыл, что можно все сборочкой на managed C++ написать, а потом ее использовать проще, ведь, чем инвоук =)
Здравствуйте, SpeedLover, Вы писали:
SL>Собственно в теме всё сказано. В добавку: нужно блокировать любые комбинации клавиш. По возможности отслеживать все действия с клавиатурой и мышкой.
Существует несколько вариантов:
1) перекрыть WndProc и отлавливать нужные тебе сообщения связанные с нажатием мышки или клавиатуры
2) Установить свойство формы KeyPreview равное true
и подписаться на обработчик события KeyPress
в котором собственно блокировать сообщения о нажатии любых клавиш
Выглядит примерно так:
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
Ну и всё ... Правда 2-ой способ блокирует сообщения только клавиатуры а тебе нужно и мышки, так что смотри в сторону 1-го варианта
Здравствуйте, kisel, Вы писали:
K>Здравствуйте, SpeedLover, Вы писали:
SL>>Собственно в теме всё сказано. В добавку: нужно блокировать любые комбинации клавиш. По возможности отслеживать все действия с клавиатурой и мышкой.
K>Существует несколько вариантов: K>1) перекрыть WndProc и отлавливать нужные тебе сообщения связанные с нажатием мышки или клавиатуры K>2) Установить свойство формы KeyPreview равное true K> и подписаться на обработчик события KeyPress K> в котором собственно блокировать сообщения о нажатии любых клавиш K> Выглядит примерно так: K> private void Form1_KeyPress(object sender, KeyPressEventArgs e) K> { K> e.Handled = true; K> } K>Ну и всё ... Правда 2-ой способ блокирует сообщения только клавиатуры а тебе нужно и мышки, так что смотри в сторону 1-го варианта
1) это все относится только к окну приложения, а нужно перехватывать ВСЕ СОБЫТИЯ
2) WndProc в шарпах? =)
Здравствуйте, Pavel M., Вы писали:
PM>чтобы стало понятнее, функция WinAPI SetWindowsHookEx и материалы по данной тематике. В .НЕТ, насколько я знаю, данная функция не реализована, использовать либо p/invoke самому, либо http://pinvoke.net/, однако я лично писал это на ++, не знаю, насколько все хорошо будет при обертке в .НЕТ.
Почему-то я на 99% уверен, что это никак не будет работать в обёртке .NET. Да, и кстати SAS всё равно не перехватишь
Здравствуйте, SpeedLover, Вы писали:
SL>Собственно в теме всё сказано. В добавку: нужно блокировать любые комбинации клавиш. По возможности отслеживать все действия с клавиатурой и мышкой.
BlockInput() из WinAPI? Блокирует намертво мышь и клавиатуру, правда, отпирается нажатием Ctrl-Alt-Del.