Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизМожно сделать перехват клавиш в проге с активным MessageBox? Найти похожие ветки
← →
Aleksandr © (2004-04-08 19:14) [0]Для Виндов понятно - нужно дллу делать. А для одной программы? Мне надо, чтобы при появлении окна MessageBox юзер определенным нажатием мог сбросить мне информацию, которая содержится в программе, до его закрытия.
← →
Fay © (2004-04-08 19:18) [1]if MessageBox(Application.Handle, "Послать чё-то автору?", "????", MB_YESNO) = IDYES then
← →
Aleksandr © (2004-04-08 19:28) [2]Зачем еще один MessageBox? Мне нужно, чтобы он, не закрывая уже активного MessageBox"a, нажал сочетание клавиш, отправляющее информацию, а затем уже тыркал кнопки на сообщении.
← →
Fay © (2004-04-08 19:30) [3]Я просто предложил оформить так "уже активный" MessageBox...
← →
Юрий Зотов © (2004-04-08 20:36) [4]> Aleksandr © (08.04.04 19:14)
> Для Виндов понятно - нужно дллу делать. А для одной программы?
А для одной программы можно написать и поставить точно такой же хук, но не в DLL, а прямо в этой программе.
См. SetWindowsHookEx.
← →
Style © (2004-04-08 20:51) [5]Aleksandr ©
Еще можно попробовать создать отдельную нить
и в ней использовать GetKeyState или GetKeyboardState..
← →
Aleksandr © (2004-04-14 12:04) [6]2 Юрий Зотов : Прямо в основном потоке?
2 Style : Нада попробовать.
← →
Aleksandr © (2004-04-14 13:19) [7]Получилось с GetKeyState. Только с нажатием Ctrl какая-то проблема:
procedure TKeyHookThread.Execute;
var
i : smallint;
W : integer;
begin
repeat
w:=VK_F12 OR VK_Control;
i:=GetKeyState(w);
if (i=1) AND Assigned(FOnKeyDown) then
FOnKeyDown(FKeyMsg)
until Terminated
end;
Делаешь w=VK_F12 - срабатывает по нажатию F12, как положено, а делаешь, как в коде - все время возвращает 1, хотя клавиш и близко не нажимал...
← →
Aleksandr © (2004-04-14 15:10) [8]Епрст... И по методу Юрия Зотова, и по второму - везде срабатывает эксепшин с грозным окном ЦПУ... нифига не понимаю.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c