| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Блокировка клавиатуры |
| Автор: Rommik 4.9.2006, 18:18 |
| В моем проекте есть DBGRID. При нажатии на нем определенных клавиш клавиатуры запускаются сторонние приложения с своими окнами и обрабатывают текущие записи грида. Так вот, при мгновенном нажатии, например Entera, запускается стороннее приложение, но фокус ввода остается на моей форме. Как бы мне передавать фокус в новое окно?? Если нажатие на клавиши происходит с некоторым интервалом, то все Ок, фокус на запущенном приложении. Как мне поступить??? |
| Автор: Rodman 4.9.2006, 18:31 | ||
Так это у тя совсем другой ЕХЕшник или другая форма??? Если другая форма то
|
| Автор: bazzzman 5.9.2006, 03:13 | ||
SetForegroundWindow(h); не всегда работает. Но в данном случае работать будет.
|
| Автор: Rommik 5.9.2006, 10:44 |
| Запускается другой ехешник. Мне нужно дождаться завершения работы ехешника. |
| Автор: Romikgy 5.9.2006, 10:50 |
после этого поставь в своем приложении или Sleep(500); или юзай WaitForSingleObject(хендл процесса, время ожидания); если поставить время ожидания INFINITE будет ждать вечно пока не закроется вызваное тобой приложение |
| Автор: Rommik 5.9.2006, 11:09 |
| Так и сделано. Но все равно при мгновенном нажатии клавиш запускается стороннее приложение а фокус ввода остается на моей форме. |
| Автор: Romikgy 5.9.2006, 12:57 |
| Rommik, исходник в студию |
| Автор: Rommik 5.9.2006, 13:42 | ||
|
| Автор: Демо 5.9.2006, 14:57 | ||
|
| Автор: Rommik 5.9.2006, 17:47 |
| Все отлично. Но все равно при мгновенном нажатии клавиш запускается стороннее приложение а фокус ввода остается на моей форме. Как мне активировать стороннее приложение, когда известно только имя ехешника??? |
| Автор: dumb 5.9.2006, 18:10 |
| EnumWindows + GetWindowModuleFileName + SetForegroundWindow |
| Автор: Elfebet 5.9.2006, 18:20 | ||
| а какое ты действие обрабатываеш при нажатии клавиши onkeypress или onkeypressdown? я к тому шо может быть у тя при нажатии клавиши фокус переходит на твой компонент, елси да то попробуй
Добавлено @ 18:21 |
| Автор: Romikgy 5.9.2006, 18:58 |
на кой? |
| Автор: Rommik 7.9.2006, 09:52 |
| Restore делаю для того, чтобы при передвижении запущенной программы на моей форме не было белого шлейфа. |
| Автор: Romikgy 7.9.2006, 10:09 |
| попробуй заменить на Application.ProcessMessage |