Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.06.24;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.06.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.013 c
8-77509
trm111
2002-02-09 23:49
2002.06.24
Как заставить звуковую карту проиграть звук определенной


3-77288
Blondin
2002-05-30 18:46
2002.06.24
Проблемы с АДО, помогите


7-77653
Alex_LG
2002-03-27 03:11
2002.06.24
Как для IE программно поставить/сменить прокси?


1-77329
Windeus
2002-06-09 12:55
2002.06.24
multilevel edit


14-77546
Alexander Bogdanov
2002-05-16 06:09
2002.06.24
где взять RoseDelphiLink3Setup.exe





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский