Главная страница
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.022 c
4-1078833130
wr
2004-03-09 14:52
2004.05.02
создание окна


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


8-1075051942
Batoon
2004-01-25 20:32
2004.05.02
Мультимедиа


3-1081240918
sohat
2004-04-06 12:41
2004.05.02
Почему при подключении локап полей возникает "Неизвестная ошибка"


7-1078890606
Mike03
2004-03-10 06:50
2004.05.02
многокнопочная мышь