:: Архив конференции по VFP до 2005 года
Ctrl+Alt+Del
rud
Автор

Сообщений: 640
Откуда: Москва
Дата регистрации: 02.09.2000
Есть потребность в определенном месте приложения отрубить пользователю возможность управления машиной путем нажатия клавиш Ctrl+Alt+Del. Естественно с последующим восстановлением такой возможности. Команда On key label Ctrl+Alt+Del ... выдает сообщение об ошибке. Как нибудь эта задача в VFP решается?
Ratings: 0 negative/0 positive
Re: Ctrl+Alt+Del
Божья_коровка

Сообщений: 25731
Дата регистрации: 23.08.2001
А если так:

on key label CTRL note
on key label ALT note
on key label DEL note
Ratings: 0 negative/0 positive
Re: Ctrl+Alt+Del
YuriWhite

Сообщений: 558
Откуда: Челябинск
Дата регистрации: 02.09.2000
Объясняю (вкратце)
Под всеми NT ( и их клонами ) это нажатие не перехватить!Другие комбинации типа Alt+Tab можно.
Это делается при помощи Хуков ( SetWindowsHookEx ).
Дале MSDN.




------------------
Жаль что пароходы не летают...
Ratings: 0 negative/0 positive
Re: Ctrl+Alt+Del
Божья_коровка

Сообщений: 25731
Дата регистрации: 23.08.2001
Цитата:
Это делается при помощи Хуков ( SetWindowsHookEx ).
А можно по подробнее про эти хуки?
Ratings: 0 negative/0 positive
Re: Ctrl+Alt+Del
Hel!Riser

Сообщений: 10452
Откуда: Нижний Новгород
Дата регистрации: 11.03.2001
не знай, какая ОСь у афтора, но если Вынь9х, то вота должно помочь
DECLARE INTEGER ShellExecute IN SHELL32.DLL ;
INTEGER nWinHandle, ;
STRING cOperation, ;
STRING cFileName, ;
STRING cParameters, ;
STRING cDirectory, ;
INTEGER nShowWindow
=ShellExecute(0,"", "rundll32", "keyboard, disable", "", -1)
WAIT WIND [клава вырублена напрочь...]
=ShellExecute(0,"", "rundll32", "keyboard, enable", "", -1)
а вот на НТях модуль клавы не находица




------------------
Осторожно - глисты!
Ratings: 0 negative/0 positive
Re: Ctrl+Alt+Del
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Под Win2K эта фича не работает
Цитата:
rundll32 keyboard.drv,disable




------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Ctrl+Alt+Del
Hel!Riser

Сообщений: 10452
Откуда: Нижний Новгород
Дата регистрации: 11.03.2001
дык я и не спорю




------------------
Осторожно - глисты!
Ratings: 0 negative/0 positive
Re: Ctrl+Alt+Del
YuriWhite

Сообщений: 558
Откуда: Челябинск
Дата регистрации: 02.09.2000
Есть книжка Рихтера очень там про ето все расписано.

А вообще то
...
hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInstance, 0);
Это в WinMain

Это собсно сам обработчик ( писал не я )


LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
BOOL fEatKeystroke = FALSE;
if (nCode == HC_ACTION)
{
switch (wParam)
{
case WM_KEYDOWN:
case WM_SYSKEYDOWN:
case WM_KEYUP:
case WM_SYSKEYUP:
PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT) lParam;
fEatKeystroke = ( (p->vkCode == VK_TAB) && ((p->flags & LLKHF_ALTDOWN) != 0) ) \
|| ( (p->vkCode == VK_ESCAPE) && ((p->flags & LLKHF_ALTDOWN) != 0) ) \
|| ( (p->vkCode == VK_ESCAPE) && ((GetKeyState(VK_CONTROL) & 0x8000) != 0) )\
|| ( (p->vkCode == 46) && ( (p->flags & LLKHF_ALTDOWN) != 0 ) \
&& ( (GetKeyState(VK_CONTROL) & 0x8000) != 0)\
|| ( (p->vkCode == 0x45) && ((GetKeyState(VK_LWIN) & 0x8000) != 0))\
|| ((GetKeyState(VK_LWIN) & 0x8000) != 0));
//its possible to add other keys.... //the 46 means del
break; }
}
return(fEatKeystroke ? 1 : CallNextHookEx(NULL, nCode, wParam, lParam));
}




------------------
Жаль что пароходы не летают...
Ratings: 0 negative/0 positive
Re: Ctrl+Alt+Del
Hel!Riser

Сообщений: 10452
Откуда: Нижний Новгород
Дата регистрации: 11.03.2001
[sm106] хук справа, хук слева [sm108]




------------------
Осторожно - глисты!
Ratings: 0 negative/0 positive
Re: Ctrl+Alt+Del
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Кстати пробовал такую фичу - rundll32.exe user.exe,disableoemlayer - вроде ничего не заметил, хотя 9x валилось влет. Потом уже заметил что система работает как-то непонятно, то файлы не находит, то дуркует. Оказалось что фича какая-то эстоноская - медленно - но доходит




------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 11 (Гостей: 11)

© 2000-2024 Fox Club 
Яндекс.Метрика