Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Можно сделать перехват клавиш в проге с активным 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
14-1081658051
Vaitek
2004-04-11 08:34
2004.05.02
Мелкософт блин совсем жадный стал.


3-1081423665
innok
2004-04-08 15:27
2004.05.02
CommandText в ADO


9-1068310197
Cash
2003-11-08 19:49
2004.05.02
Взаимодействия спрайтов


1-1082025258
Flahas
2004-04-15 14:34
2004.05.02
exel v dbgrid...


3-1081177027
YurikGl
2004-04-05 18:57
2004.05.02
Триггеры в IB