Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
3-1081008085
YurikGl
2004-04-03 20:01
2004.05.02
varchar в IB


1-1082192907
unicode
2004-04-17 13:08
2004.05.02
Form Caption


3-1081187625
SM
2004-04-05 21:53
2004.05.02
Как в SQL получить первые 10 записей из выборки


14-1081102647
Piter
2004-04-04 22:17
2004.05.02
А где народ?


1-1081871661
}|{yk
2004-04-13 19:54
2004.05.02
Drag-n-drop - изменение выделенного объекта при переносе




   Наверх