![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Snoofie |
|
|||
Unregistered |
Приветствую!
Модет у кого есть примерчик как сделать глобальный хук клавиатуры? Например для создания keylog'erа. Это вообще возможно? Помогите с примерчиком плз. |
|||
|
||||
Kurt |
|
|||
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 20 Всего: 36 |
Глобальный хук?
Это надо смотреть в сторону WinAPI, имхо, на .NET такого не сделаешь.. хм.. разве что вызов native dll'ей, но смысла тут использовать .NET вообще нет. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
seagull |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 1.12.2002 Репутация: нет Всего: нет |
В данный момент я делаю подобную систему на VS C#.NET. И тут все выглядет абсолютно аналогично программирование не под .NET.
Самые необходимые вам функции SetWindowsHookEx и UnhookWindowsHookEx. В МСДН на эти функции есть примеры. PS. Для того чтобы хук был глобальным обязательным условием есть то, что функция которая вызывается в хук-цепочка должна находится в ДЛЛ. Snoofie, если Вы подскажете интересный способ как пересылать назад эту информацию в основное тело программы буду очень признателен. |
|||
|
||||
Kurt |
|
|||
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: 20 Всего: 36 |
...Виноват, не понял, о какой информации идет речь.. ![]() -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
seagull |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 1.12.2002 Репутация: нет Всего: нет |
Kurt простите за мутную формулировку.
![]() Имеется ввиду что при установке хука мы передаем функции-обаботчик из ДЛЛ. Но проблема в том, как передать информацию из этой функции в саму програму. Ведь реально эту функция запускается с адресным пространством процесса, которому назначается это сообщение, а следовательно ни функции нашей программы, которая создала хук, ни область данных не доступны. Пока что мне на ум приходит лишь возможность использовать Pipe. Но все же хотелось бы какое-то более элегантное решение. |
|||
|
||||
stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
seagull, не думаю что, что-то элегантное найдется... можно конечно WM_COPYDATA использовать или через сокеты слать
![]() ![]() ![]() -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 3 Всего: 22 |
а как же делают глобальные горячие клавиши????? если нет никакой dll ?
|
|||
|
||||
seagull |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 1.12.2002 Репутация: нет Всего: нет |
Через ВинАпи сделать глобальный хук (в том числе и на клавиатуру), который был бы в теле программы невозможно. Так как процедура хука по определению должна быть доступна всем процессм. |
|||
|
||||
Solnishka |
|
|||
Unregistered |
Народ!!! Такой вопрос: как при помощи хука заставить символьную клавишу производить действие стрелки? Вроде и подменяется клавиша на стрелку, но не передвигается курсор, хоть ты че хошь с ним делай!!!
![]() |
|||
|
||||
oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: нет Всего: 34 |
ну дык поиск рулит по форуму )
уже писали про хук без длл (в ехешнике) только по любому он там будет в виде отдельной процедуры естественно -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
#Sage |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 25.2.2005 Репутация: нет Всего: 1 |
Snoofie (да и всем), думаю стоит глянуть эти две ссылки:
http://www.codeproject.com/csharp/GlobalSystemHook.asp http://www.codeproject.com/csharp/globalhook.asp |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |