Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Вниз

System-wide global keyboard hook   Найти похожие ветки 

 
AviDen ©   (2004-02-20 16:16) [0]

Всем привет!
Ситуация: есть тулза под win nt, отлавливающая нажатия опр. клавиш и выполняющая при этом опр. действия.
Проблема: не отлавливаются события от клавиатуры, если в данный момент активен другой дектоп (не тот, в котором регистрировался хук). В хелпе так и написано, что хуки принадлежат только тому десктопу, которому принадлежит процесс, его создавший (или что-то типа того).
Вопрос: как отлавливать события от клавы независимо от текущего десктопа? Сколько не искал - не могу найти. Может подскажете хотя бы общую идею?


 
Digitman ©   (2004-02-20 16:44) [1]

что подразумевается под System-wide клав.хуком ? как я понимаю, это относится не только к GUI-процессам, но и к прочим процессам, т.е. консолям, сервисам и т.д. ? так ? или не так ?


 
Игорь Шевченко ©   (2004-02-20 17:36) [2]


> как отлавливать события от клавы независимо от текущего
> десктопа?


Никак


 
AviDen ©   (2004-02-23 10:16) [3]

> что подразумевается под System-wide клав.хуком ?
Конкретный пример. Есть прилога, изменяющая, напр., громкость звука по нажатию на опр. комбинацию клавиш. Т.к. она реализована хуками, то если тачку залочить - она уже не работает. Мне нужно, чтобы хук (или еще там что-нибудь) работал не только под тем десктопом, в котором создавался, но и под остальными, в частности, под десктопом, активным, когда машина заблокирована.

> Игорь Шевченко: Никак

Но у меня были как-то дрова клавы, которые выполняли вышеозначенные действия независимо от того, какой сейчас активный десктоп. Даже когда машина не залогинена! Ясно, что это реализовано не Hooks"ами, но только как?


 
Cobalt ©   (2004-02-23 11:50) [4]

Драйвер клавы?
Или, скажи - может, у тебя есть сервисспециальный для твоей клавы?
Или просто уже впихнули в стандартный драйвер клавы такую шнягу...


 
AviDen ©   (2004-02-23 12:50) [5]

> to Cobalt:
нет, это не стандартный драйвер. Клава Acer с набором мультимедийных кнопок. Под нее идут дрова, которые "оживляют" эти кнопки. Но то, как там реализованы функции, напр. Пауза, Пред. трек, След. трек, Стоп ну и все остальное - мне не нравится. Вот и написал приблудину. Работает, так как мне и хотелось, но оригинальному драйверу проигрывает в невозможности использовать эти кнопки, если комп заблокирован (там этой проблемы не было). Вот и хочу узнать - как же ж эти кнопки ловить, так их за ногу!


 
Игорь Шевченко ©   (2004-02-24 16:03) [6]

AviDen ©   (23.02.04 12:50)

Никак - в смысле на пользовательском уровне. На уровне драйвера, разумеется, можно.

Ищи интерфейс к драйверу (если он есть).


 
AviDen ©   (2004-02-24 17:57) [7]

To Игорь Шевченко:

Понятно...  :-(

А ты случайно не подскажешь, где мона поискать инфу по созданию драйвера клавы под винду? А то я по этой части еще не сильно шарю.


 
Игорь Шевченко ©   (2004-02-24 18:05) [8]

AviDen ©   (24.02.04 17:57)

Не советую, это очень непросто


 
AviDen ©   (2004-02-25 15:45) [9]

> Игорь Шевченко ©   (24.02.04 18:05) [8]

Да я, в общем-то и не спорю. Слушай, я вижу ты в топике шаришь, может подскажешь еще маленько.

У меня появилась идея реализовать обсуждаемую фичу несколько в обход. Бог с ними со всеми остальными десктопами, все равно пользователь, как правило, наблюдает только два - основной рабочий и десктоп заблокированного режима. Что если моя прога будет регистриться именно в двух этих десктопах - сначала в основном, потом переключаться в десктоп lockdown"а, регистрить тот же хук на то же событие (и с тем же адресом процедуры хука), и возвращать десктоп назад. Сможет такое работать, как считаешь? И опять же, нет ли каких соображений, как можно идентифицировать winstation и desktop, которые активизируются при блокировке машины?


 
Игорь Шевченко ©   (2004-02-25 16:29) [10]


> десктоп заблокированного режима. Что если моя прога будет
> регистриться именно в двух этих десктопах


Прав не хватит. Не парься.

Кстати, вопрос - а зачем тебе надо в Desktop WinLogon"а лезть ?


 
AviDen ©   (2004-02-26 12:13) [11]

Дык я ж сказал - чтобы мой хук работал не только на Winsta0\Default, но и на Winsta0\Winlogon, т.е., когда комп залочен.

Другими словами, я хочу, чтобы блокировка машины не выключала мои хоткеи.

Хотя я уже это попробовал - в натуре винда отказывает в доступе. Но все равно, спасибо за информацию. Я где-то натыкался на способ взламывания безопасности на предмет получения доступа к Winsta0\Winlogon (кажется, на этом же форуме). Буду копать.

Всем спасибо, тема закрыта!


 
Игорь Шевченко ©   (2004-02-26 12:37) [12]


> Я где-то натыкался на способ взламывания безопасности на
> предмет получения доступа к Winsta0\Winlogon (кажется, на
> этом же форуме).


Ну-ну.

Ты эта...со взломом безопасности на этот форум не ходи, ладно ?


 
GrayFace ©   (2004-03-04 17:56) [13]

Игорь Шевченко, далась тебе эта безопасность! Че плохого во взломе безопасности?

AviDen, найдешь - кинь ссылку или саму инфу.


 
Alexander666 ©   (2004-03-05 03:33) [14]

А на то, что это не какой-нибудь хакерский форум. Да и понимать надо, что "взламываешь".


 
BiN ©   (2004-03-05 10:44) [15]

... далась тебе эта безопасность!
ха-ха, интересно, что будет с пользователем, когда он унает, что ему "взломали безопасность" (кстати тоже бессмертный опус) ради того, чтобы он (юзер) мог, скажем, музыку послушать



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.039 c
3-1080268811
Stratos
2004-03-26 05:40
2004.05.02
Autoincrement ID


3-1081308776
Sirus
2004-04-07 07:32
2004.05.02
Выборка уникальных записей без DISTINCT...


1-1082018889
sniper
2004-04-15 12:48
2004.05.02
Перекодировка текстового файла из DOS в WIN


14-1081675876
rams
2004-04-11 13:31
2004.05.02
Turbo Pascal


3-1080979904
Алексей
2004-04-03 12:11
2004.05.02
DBGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский