Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2012, 19:13   #1
Pamparam
Форумчанин
 
Регистрация: 08.11.2009
Сообщений: 225
Сообщение Как блокировать перехват клавиш в неактивном окне?

Я отправляю нажатия клавиш в одно из окон, периодически отправляя Enter. Если я нажму Alt в любом другом окне, то то окно, в которое я шлю энтер, ловит комбинацию Alt+Enter и разворачивается.
Как блочить отлов клавиш неактивным или определенным окнам?
Pamparam вне форума Ответить с цитированием
Старый 13.01.2012, 19:34   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Как блочить отлов клавиш неактивным
Мог бы посоветовать выходить из обработчика нажатий клавиш, если окно неактивно, то есть, у него нет фокуса...
Вадим Мошев вне форума Ответить с цитированием
Старый 13.01.2012, 19:47   #3
Pamparam
Форумчанин
 
Регистрация: 08.11.2009
Сообщений: 225
По умолчанию

да я же не в свое окно отправляю...
Pamparam вне форума Ответить с цитированием
Старый 13.01.2012, 20:19   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Вы имеете в виду окно, принадлежащее не вашей программе?
Вадим Мошев вне форума Ответить с цитированием
Старый 13.01.2012, 20:26   #5
Pamparam
Форумчанин
 
Регистрация: 08.11.2009
Сообщений: 225
По умолчанию

Да... .
Pamparam вне форума Ответить с цитированием
Старый 13.01.2012, 20:32   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от Pamparam Посмотреть сообщение
Я отправляю нажатия клавиш в одно из окон, периодически отправляя Enter. Если я нажму Alt в любом другом окне, то то окно, в которое я шлю энтер, ловит комбинацию Alt+Enter и разворачивается.
Как блочить отлов клавиш неактивным или определенным окнам?
Вот, насколько я понимаю: у вас есть программа, в которой вы нажимаете Enter. Вам требуется, чтобы, если вы в данный момент времени работаете не со своей программой, ваша программа не проявляла реакции.

Посоветовать могу вот что:
1. В вашей программе отключить обработку нажатий клавиш, если окно неактивно, то есть при потере фокуса.
2. При восстановлении окна или его максимизации убирать у него фокус.
Вадим Мошев вне форума Ответить с цитированием
Старый 13.01.2012, 20:50   #7
Pamparam
Форумчанин
 
Регистрация: 08.11.2009
Сообщений: 225
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Вот, насколько я понимаю: у вас есть программа, в которой вы нажимаете Enter. Вам требуется, чтобы, если вы в данный момент времени работаете не со своей программой, ваша программа не проявляла реакции.

Посоветовать могу вот что:
1. В вашей программе отключить обработку нажатий клавиш, если окно неактивно, то есть при потере фокуса.
2. При восстановлении окна или его максимизации убирать у него фокус.
Я отправляю нажатия клавиш в одно из окон (Своей программой в какое-то другое).
Если я нажму Alt в любом другом окне, то то окно, в которое я шлю энтер, ловит комбинацию Alt+Enter.
Мне нужно чтобы окно, в которое я отправляю Enter (программно), не ловило Alt, когда он был нажат фиг знает где...
Pamparam вне форума Ответить с цитированием
Старый 13.01.2012, 22:49   #8
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Цитата:
Сообщение от Pamparam Посмотреть сообщение
Я отправляю нажатия клавиш в одно из окон (Своей программой в какое-то другое).
Если я нажму Alt в любом другом окне, то то окно, в которое я шлю энтер, ловит комбинацию Alt+Enter.
Мне нужно чтобы окно, в которое я отправляю Enter (программно), не ловило Alt, когда он был нажат фиг знает где...
Отпусти Alt, а то он у тебя, наверное, нажат
Код:
keybd_event(18, 0, KEYEVENTF_KEYUP, 0);// не помню константу для Alt
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 13.01.2012, 23:42   #9
Pamparam
Форумчанин
 
Регистрация: 08.11.2009
Сообщений: 225
По умолчанию

мне каждый раз при отправке какой-то клавиши в окно отправлять и отжимание альта? А ведь альт зачем-то нажимается и если я его отожму, то отожмется он и в том окне, в котором его нажали?
Да и в окне может быть куча других действий на Alt+что-то... если кроме ентера я еще что-то отправлять буду так перед каждой отправкой надо альт вырубать?
Неужели нет ничего проще?
и кейдб для активного окна.

Еще раз пишу... неужели я так непонятно объясняю? или просто первый пост всем лень читать??

я Отправляю нажатия клавиш с помощью sendmessage в какое-то чужое окно.
Когда я нажимаю альт в любом другом окне - в первом (чужая прога) срабатывают горячие клавиши, на которые запрограммирована прога (alt+enter, etc.)
Как этого избежать?

Последний раз редактировалось Pamparam; 13.01.2012 в 23:51.
Pamparam вне форума Ответить с цитированием
Старый 14.01.2012, 00:09   #10
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Цитата:
мне каждый раз при отправке какой-то клавиши в окно отправлять и отжимание альта?
Отжимаешь альт и отравляешь (можешь не отжимать, если не нужно)
Цитата:
и кейдб для активного окна.
Можно активизировать, SetForegroundWindow
или послать "отжатие" клавиши Alt через SendMessage, ищи про это инфу
Цитата:
неужели я так непонятно объясняю? или просто первый пост всем лень читать??
я Отправляю нажатия клавиш с помощью sendmessage в какое-то чужое окно.
Про SendMessage в первом сообщении ничего не было
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нажатие комбинации клавиш в неактивном окне. viruss Общие вопросы Delphi 4 17.01.2011 19:58
Эмуляция клавиш в неактивном окне Аникейка Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 17.11.2010 09:21
клик в неактивном окне Mg0 Общие вопросы Delphi 2 30.07.2010 22:44
Кнопка в неактивном окне не нажимается Altera Общие вопросы Delphi 1 07.12.2009 13:24
Нажатие мыши в неактивном окне? sanchopansa Общие вопросы Delphi 3 16.07.2008 08:18