Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Kill 'Ctrl+Alt+Del'...

6.7K
03 апреля 2004 года
delmark
4 / / 03.04.2004
Существует ли возможность отключить сочетание 'Ctrl+Alt+Del'?
P.S. WinXP, Delphi6.
2.4K
05 апреля 2004 года
nihil
56 / / 28.02.2004
Цитата:
Originally posted by delmark
Существует ли возможность отключить сочетание 'Ctrl+Alt+Del'?
P.S. WinXP, Delphi6.



ну на Delhpi я не пробовал, а на с++ (под любое win32) можно ВСЁ... :)

Аноним
Цитата:
Originally posted by delmark
Существует ли возможность отключить сочетание 'Ctrl+Alt+Del'?
P.S. WinXP, Delphi6.



Если я правильно тебя понял ты хочеш спрятать свое приложение от юзера.
Рецепт :
1.Добавь событие OnShow или OnCreate, а лучше OnPaint.
2.Добавь эти две строки :
ShowWindow(Handle,SW_HIDE);
ShowWindow(Application.Handle,SW_HIDE);
Первая прячет текущее окно, вторая все приложение.
Должно помочь.
Kirill imho Ap0k.

Аноним
Цитата:
Originally posted by delmark
Существует ли возможность отключить сочетание 'Ctrl+Alt+Del'?
P.S. WinXP, Delphi6.



Сорри, еще вспомнил.
Значит так :
1.В Var добавь
Dummy : integer;
2.SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @Dummy, 0);
Отключение Ctrl+Alt+Del.
Говорю сразу - это API прцедура.
Kirill imho Ap0k.
P.S.: Переходи на Delphi7 Ent.

7.1K
14 апреля 2004 года
XCoder
2 / / 07.04.2004
Цитата:
Originally posted by delmark
Существует ли возможность отключить сочетание 'Ctrl+Alt+Del'?
P.S. WinXP, Delphi6.



Я так понял надо скрыть приложение от пользователя? Тогда причем тут Ctrl+Alt+Del, может заодно блокировать и Ctrl+Shift+Esc ? :D
Чайники, учитесь!

2.0K
16 апреля 2004 года
udgine
20 / / 04.03.2003
Случайно наткнулся у себя в одном их ФАКов, надеюсь поможет:

Как перехватить нажатие Ctrl+Alt+Del ?

19 апр 2002 (пятница), 09:33:35

copyr25 © (09.04.02 23:52)
Mystic: запретить можно, конечно:
...
public
{ Public declarations }
end; // after public only!!
function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall;
external 'KERNEL32.DLL';
procedure HideApplication;
procedure ShowApplication;

var
...
procedure HideApplication;
begin
RegisterServiceProcess(GetCurrentProcessID, 1);
end;

procedure ShowApplication;
begin
RegisterServiceProcess(GetCurrentProcessID, 0);
end;

В NT, и в 2000 совершенно верно, это не работает. Только в 9х.
Идея насчет своего драйвера совсем не безумная! Но сложноватая:))

--------------------------------------------------------------------------------
Для NT:
---------------------------------------------------------
начиная с winnt4 sp3 появились низкоуровневые клавиатурные хуки WH_KEYBOARD_LL.
не знаю как насчет ctrl+alt+del, но сtrl+esc, alt+tab и alt+esc они
точно позволяют перехватывать.
см. статью Джеффри Рихтера:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmag00/html/win320700.asp


/************************************************************************
Module: DisableLowLevelKeys.cpp
Notices: Written 2000 Jeffrey Richter
**************************************************************************/

#define _WIN32_WINNT 0x0400
#include < Windows.h>

/////////////////////////////////////////////////////////////////////////


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));
break;
}
}
return(fEatKeystroke ? 1 : CallNextHookEx(NULL, nCode, wParam,
lParam));
}

/////////////////////////////////////////////////////////////////////////


int WINAPI WinMain(HINSTANCE hinstExe, HINSTANCE, PTSTR pszCmdLine, int) {

// Install the low-level keyboard & mouse hooks
HHOOK hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL,
LowLevelKeyboardProc, hinstExe, 0);

// Keep this app running until we're told to stop
MessageBox(NULL,
TEXT(" Alt+Esc, Ctrl+Esc, and Alt+Tab are now disabled.\n" )
TEXT(" Click \" Ok\" to terminate this application and re-enable
these keys." ),
TEXT(" Disable Low-Level Keys" ), MB_OK);
UnhookWindowsHookEx(hhkLowLevelKybd);

return(0);
}

///////////////////////////// End Of File ///////////////////////////////
6.7K
20 апреля 2004 года
delmark
4 / / 03.04.2004
Спасибо за советы! Я практически добился нужного результата.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог