IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Деактивировать Ctrl+Alt+Del. (https://www.imho.ws/showthread.php?t=62237)

romanovi4 21.06.2004 15:15

Деактивировать Ctrl+Alt+Del.
 
Как мне деактивировать Ctrl+Alt+Del в Windows2000? :молись:

pHroZen 21.06.2004 15:58

в какой момент?
и зачем?

romanovi4 21.06.2004 16:31

При старте программы - было бы неплохо все Systemkeys деактивировать.
Для чего? Программа стартует maximized и не хотелось бы, что бы кто-нибудь мог её закрыть или даже minimieren. Form можно тогда только через Passwort закрыть.

pHroZen 21.06.2004 17:12

как я себе представляю надо свой обработчик написать для данных системных сообщений. посмотри в Msdn главу по системным сообщениям.

ссылка по данной теме (Delphi):
http://www.swissdelphicenter.ch/en/showcode.php?id=1212

D1g174LM4n14c 22.06.2004 19:42

Это сделать НЕВОЗМОЖНО. Почитай про поток необработанного ввода (raw input thread, RIT).

Джефри Рихтер. Создание эффективных Win32-приложений.
Цитата:

...RIT также отвечает за обработку особых комбинаций клавиш - Alt+Tab, AIr+Esc и Ctrl+Alt+Del. Поскольку эти комбинации клавиш RIT обрабатывает самостоятельно, пользователи могут в любой момент активизировать соответствующие окна с клавиатуры; ни одно приложение не в состоянии перехватить упомянутые комбинации клавиш...

romanovi4 22.06.2004 20:51

Ето не совсем так - посмотри http://www.sources.ru/cpp/system/ctr...el_winxp.shtml . В Windows 2000 толыко ctrl-alt-del пока не полу4ается.

D1g174LM4n14c 22.06.2004 21:13

romanovi4
См. сообщение автора:
Цитата:

romanovi4:
Как мне деактивировать Ctrl+Alt+Del в Windows2000?

pazdak 23.06.2004 09:49

Не знаю, насчет не возможно, но когда сдаешь экзамены по Microsoft или Novell то там точно эти магические три клавиши не работают !!!

А то народ бы со своими сидюками сдавался...
Камеры, которые в комнате это так для понта

chesnok 25.06.2004 01:17

Само нажатие комбинации отлавливает ядро, так что тут ничего не поделать, но вот обработчик находится в GINA.dll, а эту длль можно написать самому и заменить =)

helldomain 28.06.2004 05:05

Malenkaya podskazka: screensaveri disablyat Ctrl+Alt+Del. Oni delajut eto (na skolko ya pomniu) cherez SystemParametersInfo(), uzaetsya SPI_SCREENSAVERRUNNING.

coder911 03.07.2004 15:38

А ты попробуй перебор окон: через их HANDLE находиш заголовоки окон, затем окно с заголовком "Диспечер задач Windows" закрываешь из своей программы.

helldomain 07.07.2004 05:06

Цитата:

Сообщение от coder911
А ты попробуй перебор окон: через их HANDLE находиш заголовоки окон, затем окно с заголовком "Диспечер задач Windows" закрываешь из своей программы.

Neobhodimo pomnit, chto taskmgr ne wsegda propisan kak obrabotchik Ctrl+Alt+Del.

cd19 07.07.2004 09:13

Всё же не понимаю, зачем запрещать пользователю закрывать приложение.

anno 07.07.2004 11:02

Winboost

foRaver 12.07.2004 05:45

romanovi4 , на чем пишешь?

ЕЖ 22.07.2004 13:30

Встретил такое вот решение (сам не пробовал):

Это можно сделать при помощи функции API SystemParametersInfo, которая позволяет узнать, либо установить параметры операционной системы, такие как установки клавиатуры, дисплея, звука и т.д. Она используется в Панели Управления. Синтакс функции следующий:

BOOL SystemParametersInfo(
UINT uiAction, // параметр, который нужно узнать или установить
UINT uiParam, // зависит от действия
PVOID pvParam, // зависит от действия
UINT fWinIni // флаг обновления информации о пользователе (user profile)
);
Значение каждого параметра объясняется в Win32 Developer's Reference. Теперь, чтобы сделать то, что мы хотим, вызываем следующую прцедуру:

procedure DisableCtrlAltDel;
var
i : integer;
begin
i := 0;
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @i, 0);
end.

Аналогично можно отключить Alt-Tab. Для этого нужно задать SPI_SETFASTTASKSWITCH в качестве первого параметра функции.

bloodman 22.07.2004 14:53

Цитата:

Сообщение от zeuszeus
Встретил такое вот решение (сам не пробовал):

Это можно сделать при помощи функции API SystemParametersInfo, которая позволяет узнать, либо установить параметры операционной системы, такие как установки клавиатуры, дисплея, звука и т.д. Она используется в Панели Управления. Синтакс функции следующий:

BOOL SystemParametersInfo(
UINT uiAction, // параметр, который нужно узнать или установить
UINT uiParam, // зависит от действия
PVOID pvParam, // зависит от действия
UINT fWinIni // флаг обновления информации о пользователе (user profile)
);
Значение каждого параметра объясняется в Win32 Developer's Reference. Теперь, чтобы сделать то, что мы хотим, вызываем следующую прцедуру:

procedure DisableCtrlAltDel;
var
i : integer;
begin
i := 0;
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @i, 0);
end.

Аналогично можно отключить Alt-Tab. Для этого нужно задать SPI_SETFASTTASKSWITCH в качестве первого параметра функции.


Это для Win 95 - win ME . В линейке NT такое не пройдет , как и registerserviceproces (это для скрытия процеса).

Но выключит Ctrl-Alt-Delete в NT можно . Только тот кто знает не хочет говорить это , т.к. считают что это нужно для троянов :(
Впрочем все при таком вопросе ссылаются на книгу Рихтера. ( ее выше писали) .

Mr.Vector! 23.07.2004 00:12

Ему нужно вовсе не то, что вы пишите...
Незнаю как с этим в Win2000, но для WindowsXP я делал так...

AnsiString A = "c:\\winxp\\system32\\taskmgr.exe";
CreateFile(taskmgr.c_str(),GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATT RIBUTE_NORMAL,NULL);

Т.е. если даже Винда попытается открыть Диспетчер Задач, то не сможет получить к нему доступ!

AndrMan 04.08.2004 15:44

здесь:
http://www.codeproject.com/useritems/GINA_SPY.asp

romanovi4 06.08.2004 22:30

Спасибо са Help. Я Работаю под VB.Net. Насколыко я понял - надо переписыват GINA.


Часовой пояс GMT +4, время: 02:32.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.