Ctrl+Alt+Del
От: Сергей  
Дата: 03.10.01 14:13
Оценка:
Люди, кто-нибудь знает как сделать так, чтоб прога ловила нажатие Ctrl+Alt+Del и не давала тем самым снять себя через панель задач?
Если знаете, буду очень признателен за информацию
Re: Ctrl+Alt+Del
От: Alex Fedotov США  
Дата: 03.10.01 14:27
Оценка:
Здравствуйте Сергей, вы писали:

С>Люди, кто-нибудь знает как сделать так, чтоб прога ловила нажатие Ctrl+Alt+Del и не давала тем самым снять себя через панель задач?


В Windows 9x можешь зарегистрировать программу как сервис (kernel32!RegisterServiceProcess), тогда ее просто не будет видно в панели задач.

Однако, не забывай, у пользователя может быть масса других утилит, которые показывают процессы и позволяют убивать их. Так что это заведомо проигрышная игра.
-- Alex Fedotov
Re: Ctrl+Alt+Del
От: Vlasevski Artem Россия http://megalink.ru/~devart
Дата: 05.10.01 06:46
Оценка:
Здравствуйте Сергей, Вы писали:

С>Люди, кто-нибудь знает как сделать так, чтоб прога ловила нажатие Ctrl+Alt+Del и не давала тем самым снять себя через панель задач?

С>Если знаете, буду очень признателен за информацию

Здрасьте!

Alex Fedotov посоветовал "... зарегистрировать программу как сервис (kernel32!RegisterServiceProcess), тогда ее просто не будет видно в панели задач." Вот код который только этим и занимается:

typedef (WINAPI REGSERVPROC)(DWORD, DWORD);
typedef REGSERVPROC* LPREGISTERSERVICEPROCESS;
HINSTANCE hLibrary;
LPREGISTERSERVICEPROCESS regproc;
hLibrary = LoadLibrary("kernel32.dll");
if (hLibrary) regproc = (LPREGISTERSERVICEPROCESS)GetProcAddress(hLibrary, "RegisterServiceProcess");


//call this when you want to hide the process from ctrl+alt+del window
if (regproc) (regproc) (NULL, 1); //hide
//call this when you close that app...
if (regproc) (regproc) (0, 0); //show
FreeLibrary(hLibrary);

Хорошая и полезная должна быть программа, если автор не хочет, чтобы ее убивали :)))
Удачи!!!
--------
С наилучшими пожеланиями, Власевский Артём a.k.a DevXarT
Re[2]: Ctrl+Alt+Del
От: lancasper Россия  
Дата: 08.10.01 14:01
Оценка:
Здравствуйте Vlasevski Artem, Вы писали:

VA>Здравствуйте Сергей, Вы писали:


С>>Люди, кто-нибудь знает как сделать так, чтоб прога ловила нажатие Ctrl+Alt+Del и не давала тем самым снять себя через панель задач?

С>>Если знаете, буду очень признателен за информацию

VA>Здрасьте!


VA>Alex Fedotov посоветовал "... зарегистрировать программу как сервис (kernel32!RegisterServiceProcess), тогда ее просто не будет видно в панели задач." Вот код который только этим и занимается:


VA>typedef (WINAPI REGSERVPROC)(DWORD, DWORD);

VA>typedef REGSERVPROC* LPREGISTERSERVICEPROCESS;
VA>HINSTANCE hLibrary;
VA>LPREGISTERSERVICEPROCESS regproc;
VA>hLibrary = LoadLibrary("kernel32.dll");
VA>if (hLibrary) regproc = (LPREGISTERSERVICEPROCESS)GetProcAddress(hLibrary, "RegisterServiceProcess");


VA>//call this when you want to hide the process from ctrl+alt+del window

VA>if (regproc) (regproc) (NULL, 1); //hide
VA>//call this when you close that app...
VA>if (regproc) (regproc) (0, 0); //show
VA>FreeLibrary(hLibrary);

VA>Хорошая и полезная должна быть программа, если автор не хочет, чтобы ее убивали :)))

VA>Удачи!!!

VA>Попробуйте!

VA>SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,0,0);
VA>
Re[2]: Ctrl+Alt+Del
От: lancasper Россия  
Дата: 08.10.01 14:06
Оценка:
Попробуйте так (но работает только под W98)

SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,0,0);

Я сейчас что-то подобное делаю для администратора игрового зала
Немного доработки и работает под NT/2000
Re: Ctrl+Alt+Del
От: lancasper Россия  
Дата: 08.10.01 14:29
Оценка:
Здравствуйте Сергей, Вы писали:

С>Люди, кто-нибудь знает как сделать так, чтоб прога ловила нажатие Ctrl+Alt+Del и не давала тем самым снять себя через панель задач?

С>Если знаете, буду очень признателен за информацию

Попробуйте
SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,0,0);
Re[2]: Ctrl+Alt+Del
От: Snax Россия  
Дата: 09.10.01 06:34
Оценка:
Здравствуйте Vlasevski Artem, Вы писали:

VA>hLibrary = LoadLibrary("kernel32.dll");


Мдаа........ использовать LoadLibrary для kernel32.dll это диагноз :)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.