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

Вниз

Без темы   Найти похожие ветки 

 
ATLANTIDO ©   (2002-04-26 00:26) [0]

Мастера ! Проблема ! Бьюсь уже месяц :(
Моя прога в опр. момент времени должна всплывать (типа блокировка), да так, чтобы ее не могли перекрыть. При этом блокируется клав. и мышь (хуки). Form1 - максимизированое окно.
Form2 - окно с сообщением.

if Copy(str, 1, 4)="lock" then
begin
{///KILL all}
H := GetForegroundWindow;
GetWindowText(H, Buffer, SizeOf(Buffer));
if (Pos("Internet Explorer", Buffer)=0) and (H<>Form1.Handle) and (H<>Form2.Handle) and (H<>Form3.Handle) and (H<>Form4.Handle) and (H<>Form5.Handle) then
KillProgram(H);
{TOP////////////}
a:=GetWindowThreadProcessId(GetForegroundWindow,nil);
AttachThreadInput(GetCurrentThreadId,a,true);
SetForegroundWindow(Handle);
AttachThreadInput(GetCurrentThreadId,a,false);
SetWindowPos(Form1.Handle, hwnd_TopMost, Form1.Left, Form1.Top, Form1.Width, Form1.Height, SWP_SHOWWINDOW);
//Блокировка ввода
hKeybHook:=SetWindowsHookExA(WH_KEYBOARD,@KeybProc,HINSTANCE,0);
hMouseHook:=SetWindowsHookExA(WH_MOUSE,@MouseProc,HINSTANCE,0);
Form5.Show;
SetWindowPos(Form5.Handle, hwnd_TopMost, Form5.Left, Form5.Top, Form5.Width, Form5.Height, SWP_SHOWWINDOW);
end;

Потом мне надо дать доступ пользователю (снять блокировку). Делаю так:

if Copy(str, 1, 6)="unlock" then
begin
Form5.Hide;
SetForegroundWindow(Form1.Handle);
Form1.SetFocus;
//разблокировка
UnhookWindowsHookEx(hKeybHook);
UnhookWindowsHookEx(hMouseHook);
SetWindowPos(Form1.Handle, hwnd_NoTopMost, Form1.Left, Form1.Top, Form1.Width, Form1.Height, SWP_SHOWWINDOW);
end;

Так вот, после "разблокировки" не воспринимаются нажатия на мышь и клавиатуру. Может Form1 фокус ввода не получает ?


 
Song ©   (2002-04-26 08:08) [1]

А хук-то снимается?


 
Vovchik ©   (2002-04-26 15:57) [2]

Убей хук с помощью UnRegisterHookEx или чего-то в этом роде, не помню точно название.



Страницы: 1 вся ветка

Текущий архив: 2002.06.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
1-77406
Big Daddy
2002-06-13 21:09
2002.06.24
Поменять движения мышки


1-77426
Burmistroff
2002-06-09 21:22
2002.06.24
Динамические массивы


6-77531
DrKot
2002-04-14 18:45
2002.06.24
Порт 139 в windows как с ним работать


6-77527
Doom
2002-04-14 20:25
2002.06.24
Чтение / запись файлов в локальной сети


1-77345
Samvel
2002-06-13 00:23
2002.06.24
form