Как перехватить все клавиши?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Как перехватить все клавиши?

Сообщение arthur2 » 10.01.2011 (Пн) 9:19

Twister писал(а):Может быть это звучит слегка занудно, но я стараюсь не давать маленькому ребёнку играться с работающими девайсами.
А я не вижу в этом ничего плохого. Ребенку же интересно :)

Кстати, доча каким-то образом умудряется очень часто нажимать Win+L :D

Выковырял правую Win :)
Артур
 
   

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Как перехватить все клавиши?

Сообщение arthur2 » 10.01.2011 (Пн) 21:49

В общем, RegisterHotKey вообще не зависит от рабочего стола и работает на всю систему. Кстати, на мой взгляд, это косяк системы: пока мы на другом рабочем столе, хоткеи во всю срабатывают за дефолтным столом, а мы об этом и знать не знаем! Вот тебе и "блокировка"

Но для моего случая хоткеи не подходят - потому что поток всё равно ничего не получает - он приостановлен и дожидается через WaitForSingleObject, пока закроется запущенная им программа. В общем, придется-таки запускать ещё один процесс-киллера. Правда, на новый стол его отправлять не обязательно :)
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как перехватить все клавиши?

Сообщение Хакер » 10.01.2011 (Пн) 22:08

Артур, я во-первых понимаю половину сказанных (их смысл) слов, а во-вторых — ты занимаешься какой-то ерундой (это вытекает из фразы «ещё один процесс»).
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Как перехватить все клавиши?

Сообщение arthur2 » 10.01.2011 (Пн) 23:00

1. Создаю второй рабочий стол.
2. Переключаюсь на него.
3. Запускаю на новый рабочий стол экзешник, переданный в качестве параметра
4. Жду, пока этот экзешник завершит работу, чтобы вернуться на дефолтный стол. На это время мой поток заморожен, а значит сам я не могу ловить хоткеи.

Первый абзац тоже непонятный?
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как перехватить все клавиши?

Сообщение Хакер » 11.01.2011 (Вт) 0:40

1. Гуд.
2. В контекте «запускатора»? Зачем :?:
3. Что значит «экзешник, переданный в параметрах». Переданный кем, кому, в каких параметрах и с какой целью (все пункт обязательны к ответу).
4. С какой целью ловишь хоткеи?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Как перехватить все клавиши?

Сообщение arthur2 » 11.01.2011 (Вт) 6:07

2. "Переключаюсь" не в смысле SetThreadDesktop, а в смысле SwitchDesktop.

3. Запускатор запускает ту программу, которую ему передали в коммандной строке.

4. Чтобы оставалась возможность вернуться на дефолтовый стол, не дожидаясь, пока закроется запущенная программа
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как перехватить все клавиши?

Сообщение Хакер » 11.01.2011 (Вт) 16:28

4. Повторный переход в новый стол при этом предполагается?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Как перехватить все клавиши?

Сообщение arthur2 » 11.01.2011 (Вт) 18:17

4. В принципе - предполагается. Понадобилось - переключился на дефолтный, сделал, что надо - вернулся на залоченный.

Но если в этом какая-то большая сложность, то и бог с ним :) Хватит того, чтобы просто вернуться, убив всех позади себя 8)
Артур
 
   

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Как перехватить все клавиши?

Сообщение arthur2 » 12.01.2011 (Ср) 6:49

А как найти дефолтный стол, если находимся на другом? У дефолтного стола есть предопределенное имя?
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как перехватить все клавиши?

Сообщение Хакер » 12.01.2011 (Ср) 7:34

arthur2 писал(а):У дефолтного стола есть предопределенное имя?

меня поражает вот что. Неужели писать здесь вопрос — быстрее и проще, чем читать документацию:
MSDN писал(а):By default, there are three desktops in the interactive window station: Default, ScreenSaver, and Winlogon.

Ну, или, если в MSDN неубедительно, можно ведь вызвать EnumDesktops и посмотреть, какие там имена.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Как перехватить все клавиши?

Сообщение arthur2 » 12.01.2011 (Ср) 8:03

Хакер писал(а):Неужели писать здесь вопрос — быстрее и проще
Ага :oops:

Ну и спасибо, конечно :)
Артур
 
   

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Как перехватить все клавиши?

Сообщение arthur2 » 25.02.2011 (Пт) 7:43

Возвращаюсь с блокирующего стола, после того, как доча поиграла... а на дефолтном открыто стопицот окон поиска :(

Как бы ещё и это победить? А то, получается, находясь на другом столе, можно запускать всё подряд на дефолтном :(
Артур
 
   

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Как перехватить все клавиши?

Сообщение Antonariy » 25.02.2011 (Пт) 15:55

Как перехватить все клавиши?
Так и хочется сказать: ограбить фуру с клавиатурами :)
Лучший способ понять что-то самому — объяснить это другому.

Пред.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 58

    TopList