Как правильно активировать окно и переключить фокус клавиатуры на него в чужом потоке с использованием оконных сообщений16.12.2021, 05:23. Показов 7229. Ответов 20
Метки нет (Все метки)
Я почитал инструкции которые здесь описаны https://docs.microsoft.com/en-... g-messages, тема довольно объёмная сложная, примеров очень мало. Значит я нахожу дескриптор окна по этому алгоритму(в дальнейшем его можно переделать на более простой если система конечно не запрещает отправлять сообщения к не вызывающим потокам) https://www.cyberforum.ru/blog... g7148.html, далее после 64ой строчки дописываю код.
cout<<"PeekMessageA "<<PeekMessageA(&MSG,g_HWND[1],WA_ACTIVE,WM_KEYLAST,PM_QS_SENDMESSAGE)<<en;//не знаю или это корректно. Результата нет.Примечание 2. По идее эта функция должна посылать сообщение в другой поток, обычно для этого требуются бешеные привилегии и такие функции как правило не работают. Хотя в инструкции сказано что такие привилегии нужны если идёт работа с удалённым рабочим столом. Я посылаю команду на активацию и переключения реагирования клавиатуры поэтому 2 раза указываю WA_ACTIVE. Последним параметром я пишу о том что нужно снять активацию с текущего окна, т.е. любого окна верхнего уровня, т.к. работаю с дебагом то понятно что на переднем плане компилятор а не запускаемая программа. В инструкции сказано что можно 0 писать, может система сама снимает активацию. Это очень странно что её нужно снимать с 1го окна и переводить на другое возникает вопрос как работать во многопотоке, там что тоже активация постоянно переключается и создаётся впечатления что активация не снимается. Примечание 3. Получаю информацию. В конечном итоге получаю ошибку 1159 что говорит о некой синхронизации не совсем понятно почему если я укзал что нужно снять с верхнего окна активацию и переключиться на g_HWND[1]. Проверил дескриптор окна он верный, номер потока тоже да и в принципе здесь записано так if(GetWindowThreadProcessId(g_HWND[1]=(HWND)++rrr[0],&rrr[1])==pe32pt.th32ThreadID)... что в принципе проверяет возвращается ли номер потока с участием этого процесса ну и конечно дескриптора окна. Хотя можно и вручную вбить разницы нет. Покажите пример как эти функции выполнют такую задачу.
0
|
||||||
| 16.12.2021, 05:23 | |
|
Ответы с готовыми решениями:
20
Как переключить фокус программы на нужное окно? Переключить раскладку клавиатуры в чужом окне
|
|
0 / 0 / 0
Регистрация: 17.12.2021
Сообщений: 11
|
||||||||||||||||
| 22.12.2021, 10:40 | ||||||||||||||||
0
|
||||||||||||||||
| 22.12.2021, 10:40 | |
|
Как переключить фокус на другую открытую форму? Как правильно создать двумерный массив указателей с использованием calloc? и ввод данных в него Проблема с перехватом оконных сообщений Как переключить раскладку клавиатуры из VB? Обьясните логику в Последовательности оконных сообщений Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|