Главная страница
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.02 c
14-77603
Дмитрий Баранов
2002-05-22 12:30
2002.06.24
Оффтопик (VC++)


4-77662
SergeySh
2002-04-24 10:01
2002.06.24
Как получить Form?


3-77315
Astral
2002-05-31 14:44
2002.06.24
MS-SQL, встроенный в Office2000!!!


14-77598
Wadim
2002-05-22 00:35
2002.06.24
Как удалить инициализацию программ?


3-77293
wHammer
2002-05-24 13:24
2002.06.24
Есть ли те, кто пользуется PReport ом?