IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> работа с клавиатурой, C#, MSVS08
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 104
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Подскажите, пожалуйста, как научить программу отлавливать факт нажатия кнопок клавиатуры в окне другого приложения?
В общем нужно что-то типа клавиатурного шпиона написать...


--------------------
go ask Alice
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Ну и чего ты творишь? Я ж тебе дал ссылку на MSDN, там явно сказано:
Цитата
Return Value
The return value is the handle to the window with the keyboard focus. If the calling thread's message queue does not have an associated window with the keyboard focus, the return value is NULL.
...
Use the GetForegroundWindow function to retrieve the handle to the window with which the user is currently working. You can associate your thread's message queue with the windows owned by another thread by using the AttachThreadInput function.


Вот так это приблизительно делается на WinAPI:
// Получаем хэндл активного приложения
HWND hWnd = ::GetForegroundWindow();
DWORD myProcessId, otherProcessId;
DWORD otherThread=::GetWindowThreadProcessId(hWnd, &otherProcessId);
DWORD myThread = ::GetWindowThreadProcessId(mуWnd, &myProcessId);
// Подключаемся к другому потоку
::AttachThreadInput(myThread, otherThread, true);
// Получаем в его контексте дочернее окно с фокусом, обрабатываем его как нужно
HWND hWndOfFocused = ::GetFocus();

// И отсоединяемся от чужого процесса
::AttachThreadInput(myThread, otherThread, false);
Возможно, .NET позволяет сделать это же самое и проще...
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Unknown   работа с клавиатурой   16.04.2009 23:58
volvo   Глобальный хук на клавиатуру? Вот тут есть пример…   17.04.2009 1:12
Unknown   Спасибо! Теперь другой вопрос: как в окно друг…   17.04.2009 2:39
volvo   А оно тебе надо писать это в окно Word-а? Создать …   17.04.2009 2:48
Unknown   да, мне это нужно :) Мне нужно написать прогу напо…   17.04.2009 3:24
volvo   Ну, тогда смотри, как работать с Word-ом: Word Aut…   17.04.2009 4:10
Unknown   Word - это я просто в качестве примера привел. А в…   17.04.2009 15:21
Unknown   определять хэндл окна по его названию научился - f…   17.04.2009 16:31
volvo   Ты правильно понимаешь... На WinAPI это делается ч…   17.04.2009 16:36
Unknown   Вот спасибо! оказывается есть полно полезных ф…   17.04.2009 16:46
Unknown   Гмм... GetFocus все время возвращает 0... в чем мо…   20.04.2009 17:08
volvo   Ну и чего ты творишь? Я ж тебе дал ссылку на MSDN,…   20.04.2009 17:28
Unknown   спасибо, попробовал сделать по шагам - споткнулся …   21.04.2009 6:12
volvo   Хм... Надо будет установить себе хотя бы SharpDeve…   21.04.2009 13:11
volvo   Update: ответ на вопрос WinForms FAQ - "// N…   21.04.2009 14:25
Гость   т.е., к примеру, поле мемо программы, написанной …   24.04.2009 8:02
volvo   Установил себе наконец-то SharpDevelop, написал та…   25.04.2009 18:08
Unknown   Если я не ошибаюсь, я пробовал на ICQ... Спасибо з…   27.04.2009 7:48


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.05.2024 2:00
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name