![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Когда отлучаюсь из-за компьютера, включаю программку, чтобы нельзя было работать на комп. в мое отсутствие, но её отключают через Alt+Ctrl+Del. Как его отключить?
|
|
#2
|
||||
|
||||
|
вот процедура, которая выполняет то, что тебе требуется:
Код:
uses Registry; // незабываем подключить этот модуль..!!!!!
procedure LockerTask(lock_id: integer);
const
sKey = 'DisableTaskMgr';
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Policies\System', True) then
begin
if Reg.ValueExists(sKey) then
begin
case lock_id of
1: Reg.WriteString (sKey, '1'); // отключить диспетчер
100: Reg.WriteString (sKey, '100'); // включить диспетчер
end;
end;
Reg.CloseKey;
end;
finally
Reg.Free;
end;
end;
применять так: блокировка диспетчера - LockerTask(1); разблокировка диспетчера - LockerTask(100); |
|
#3
|
||||
|
||||
|
Пардон, логика кода улыбнула
) смешно 2 кэйса ставить. Вот ещё один (тока написанный) вариант:И кстати if Reg.ValueExists(sKey) ты зря поставил. А то например у меня процедура не будет работать, т.к. обработки else у тебя нет. Код:
uses Registry;
...
procedure LockTaskManager(Lock : Boolean = True);
const
sKey = 'DisableTaskMgr';
begin
with TRegistry.Create do
begin
RootKey := HKEY_CURRENT_USER;
if not OpenKey('\Software\Microsoft\Windows\CurrentVersion\Policies\System', True) then Exit;
if Lock then WriteString(sKey, '1') else WriteString(sKey, '100');
CloseKey;
Free;
end;
end;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
LockTaskManager();
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
LockTaskManager(False);
end;Последний раз редактировалось Ferra, 16.01.2010 в 14:07. |
|
#4
|
||||
|
||||
|
Спасибо. Попробую
|
|
#5
|
||||
|
||||
|
Цитата:
почему ты думаешь что if Reg.ValueExists(sKey) тут лишнее? и при чём тут else??? если данный "кей" существует в реестре, то он редактируется..!!!! чтобы ошибки не выскакивали..!!!! |
|
#6
|
||||
|
||||
|
Прежде чем писать много восклицательных знаков, хорошо подумай. А что произойдет в твоей процедуре если такого 'кея' нет? Правильно - ничего. А в моем варианте в реестр запишется новый кей,
|