Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.01.2010, 19:21
Аватар для Crack502
Crack502 Crack502 вне форума
Начинающий
 
Регистрация: 05.01.2010
Сообщения: 125
Репутация: 10
Вопрос Отключить диспетчер задач

Когда отлучаюсь из-за компьютера, включаю программку, чтобы нельзя было работать на комп. в мое отсутствие, но её отключают через Alt+Ctrl+Del. Как его отключить?
Ответить с цитированием
  #2  
Старый 16.01.2010, 13:24
Аватар для RusMaXXX
RusMaXXX RusMaXXX вне форума
Начинающий
 
Регистрация: 01.10.2008
Сообщения: 138
Версия Delphi: 7
Репутация: 21
Лампочка

вот процедура, которая выполняет то, что тебе требуется:

Код:
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  
Старый 16.01.2010, 14:03
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
По умолчанию

Пардон, логика кода улыбнула ) смешно 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;
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.

Последний раз редактировалось Ferra, 16.01.2010 в 14:07.
Ответить с цитированием
  #4  
Старый 16.01.2010, 15:10
Аватар для Crack502
Crack502 Crack502 вне форума
Начинающий
 
Регистрация: 05.01.2010
Сообщения: 125
Репутация: 10
По умолчанию

Спасибо. Попробую
__________________
Вот раньше, года этак в 60-е, было всё классно - sex, drugs & rock'n'roll. А сейчас? Suxx, bugs & plug'n'play...
Ответить с цитированием
  #5  
Старый 18.01.2010, 18:18
Аватар для RusMaXXX
RusMaXXX RusMaXXX вне форума
Начинающий
 
Регистрация: 01.10.2008
Сообщения: 138
Версия Delphi: 7
Репутация: 21
Лампочка

Цитата:
Сообщение от Ferra
И кстати if Reg.ValueExists(sKey) ты зря поставил. А то например у меня процедура не будет работать, т.к. обработки else у тебя нет.

почему ты думаешь что if Reg.ValueExists(sKey) тут лишнее? и при чём тут else??? если данный "кей" существует в реестре, то он редактируется..!!!! чтобы ошибки не выскакивали..!!!!
Ответить с цитированием
  #6  
Старый 20.01.2010, 00:16
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
По умолчанию

Прежде чем писать много восклицательных знаков, хорошо подумай. А что произойдет в твоей процедуре если такого 'кея' нет? Правильно - ничего. А в моем варианте в реестр запишется новый кей,
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:10.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025