Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2013, 13:13   #11
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Цитата:
Сообщение от Larboss Посмотреть сообщение
Почему не подходит?
Ну а зачем отключать сам диспетчер задач?
bakanaev вне форума Ответить с цитированием
Старый 24.05.2013, 13:19   #12
Larboss
Недо
Участник клуба
 
Регистрация: 11.08.2011
Сообщений: 1,394
По умолчанию

Цитата:
Сообщение от bakanaev Посмотреть сообщение
Ну а зачем отключать сам диспетчер задач?
Чтобы пользователь не залез в него и не вырубил процесс, который вы хотите, чтоб не был закрыт таким способом. А чем вы ущемите пользователя, если отключите ему диспетчер задач?
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
Larboss вне форума Ответить с цитированием
Старый 24.05.2013, 13:29   #13
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Цитата:
Сообщение от Larboss Посмотреть сообщение
Чтобы пользователь не залез в него и не вырубил процесс, который вы хотите, чтоб не был закрыт таким способом. А чем вы ущемите пользователя, если отключите ему диспетчер задач?
Как минимум мне начнут предъявлять почему моя программа отключила диспетчер
bakanaev вне форума Ответить с цитированием
Старый 24.05.2013, 13:37   #14
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Вам именно от диспетчера задач надо спрятать прогу или вообще от всех подобных программ?
Kix.IV вне форума Ответить с цитированием
Старый 24.05.2013, 13:39   #15
bakanaev
Форумчанин
 
Регистрация: 27.03.2012
Сообщений: 438
По умолчанию

Цитата:
Сообщение от Kix.IV Посмотреть сообщение
Вам именно от диспетчера задач надо спрятать прогу или вообще от всех подобных программ?
От диспетчера хватит с головой))
bakanaev вне форума Ответить с цитированием
Старый 24.05.2013, 13:53   #16
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

http://www.programmersforum.ru/showthread.php?t=1416
Kix.IV вне форума Ответить с цитированием
Старый 24.05.2013, 14:15   #17
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Пишите резидентную программу(сервис) и можно без изврата работать.
Человек_Борща вне форума Ответить с цитированием
Старый 24.05.2013, 20:29   #18
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Извращенство вообще плохая черта, но иногда экономит время в одной конкретной ситуации
Не знаю как в Win7/8, а на раньше если назвать любую программу так же как и системный процесс, то стандартный диспетчер не давал его закрыть (видимо, он их по именам только сравнивал), этим пользовались многие нехорошие программы.

P.S. Этот способ не рекомендую
eoln вне форума Ответить с цитированием
Старый 27.07.2019, 14:44   #19
Mr Robot
 
Регистрация: 27.07.2019
Сообщений: 5
По умолчанию

Код:
uses CommCtrl;

type
  TProcess_Class = class(TThread)
  private
  function Hide_Process(process: string): Boolean;
  protected
  procedure Execute; override;

  end;

type
  PLVItem64 = ^TLVItem64;

  TLVItem64 = packed record
    mask: LongWord;
    iItem: LongInt;
    iSubItem: LongInt;
    state: LongWord;
    stateMask: LongWord;
    alignment1: LongWord;
    pszText: Int64;
    cchTextMax: LongInt;
    iImage: LongInt;
    lParam: Int64;
    iIndent: LongInt;
    iGroupId: LongInt;
    cColumns: LongWord;
    alignment2: LongWord;
    puColumns: Int64;
    piColFmt: Int64;
    iGroup: LongInt;
    alignment3: LongWord;
  end;

var
  Form1: TForm1;
  Process_Class: TProcess_Class;

implementation

{$R *.dfm}

procedure TProcess_Class.Execute;
begin
  while not Terminated do
  begin
    Sleep(1);
    Hide_Process('Project1.exe');
  end;
end;

function TProcess_Class.Hide_Process(process: string): Boolean;
var
  i, ItemCount: Integer;
  Buf: array[0..255] of Char;
  PID, ProcessHandle: DWORD;
  Dummy: SIZE_T;
  pCh: PChar;
  pItem: PLVItem64;
  Item: TLVItem64;
  hProcess: THandle;
  sL: TStrings;
begin
  Result := False;
  hProcess := FindWindow(nil, 'Диспетчер задач Windows');
  hProcess := FindWindowEx(hProcess, 0, nil, 'Процессы');
  hProcess := FindWindowEx(hProcess, 0, 'SysListView32', nil);
  if hProcess = 0 then
    Exit;
  GetWindowThreadProcessID(hProcess, @PID);
  ProcessHandle := OpenProcess(PROCESS_ALL_ACCESS, False, PID);
  if ProcessHandle = 0 then
    Exit;
  pCh := VirtualAllocEx(ProcessHandle, nil, 255, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
  pItem := VirtualAllocEx(ProcessHandle, nil, SizeOf(TLVItem64), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
  ItemCount := ListView_GetItemCount(hProcess);
  sL := TStringList.Create;
  try
    for i := 0 to ItemCount - 1 do
    begin
      Item.mask := LVIF_TEXT;
      Item.iItem := i;
      Item.iSubItem := 0;
      Item.pszText := Int64(pCh);
      Item.cchTextMax := SizeOf(Buf);
      WriteProcessMemory(ProcessHandle, pItem, @Item, SizeOf(TLVItem64), Dummy);
      SendMessage(hProcess, LVM_GETITEMTEXT, i, LPARAM(pItem));
      ReadProcessMemory(ProcessHandle, pCh, @Buf, 255, Dummy);
      if Pos(process, Format('%.3d - %s', [i, Buf])) <> 0 then
      begin
        ListView_DeleteItem(hProcess, StrToInt(Format('%.3d', [i, Buf])));
      end;
    end;
  finally
    sL.Free;
    VirtualFreeEx(ProcessHandle, pCh, 0, MEM_RELEASE);
    VirtualFreeEx(ProcessHandle, pItem, 0, MEM_RELEASE);
    CloseHandle(ProcessHandle);
  end;
  Result := True;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Process_Class = nil then
  begin
    Process_Class := TProcess_Class.Create(False);
    Process_Class.FreeOnTerminate:=true;
    Process_Class.Priority := tpNormal;
    Process_Class.Resume;
  end;
end;
Mr Robot вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как скрыть процесс из диспетчера задач Юрий_) C# (си шарп) 4 06.04.2012 13:01
Как скрыть процесс из диспетчера задач? detalik Общие вопросы Delphi 13 21.10.2011 23:51
Розблокирование диспетчера задач LuckyPasha Windows 2 02.05.2009 21:03
Как скрыть процесс в списке процессов диспетчера задач? SeRhy Помощь студентам 6 02.02.2008 10:28
скрыть процесс от диспетчера задач krem Win Api 2 23.07.2007 13:12