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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.12.2005, 13:12
Unocide Unocide вне форума
Прохожий
 
Регистрация: 23.11.2005
Сообщения: 16
Репутация: 10
По умолчанию Процессы

Просмотр запущенных процессов, и завершение по /PID. Аналог виндовозовских tasklist taskill. Что подскажете?
Ответить с цитированием
  #2  
Старый 11.01.2006, 17:24
Аватар для GLFox
GLFox GLFox вне форума
Прохожий
 
Регистрация: 11.10.2005
Сообщения: 26
Репутация: 10
По умолчанию

STFW:
Win9x - "tool help functions"
WinNT - NtQuerySystemInformation
Ответить с цитированием
  #3  
Старый 12.01.2006, 18:35
codeLocker codeLocker вне форума
Прохожий
 
Регистрация: 01.11.2005
Сообщения: 12
Репутация: 10
По умолчанию

Пример ниже убивает процесс по заданому имени
Код:
procedure ProcessTerminate(sName: string);
var
  han : THandle;
  ProcStruct : PROCESSENTRY32;
  sID : string;
begin
  han := CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
  if han = 0 then exit;
  ProcStruct.dwSize := sizeof(PROCESSENTRY32);
  if Process32First(han, ProcStruct) then begin
    repeat
      sID := ExtractFileName(ProcStruct.szExeFile);
      if UpperCase(copy(sId, 1, length(sName))) = uppercase(sName) then begin
        ProcessTerminate(ProcStruct.th32ProcessID);
        Break;
      end;
    until not Process32Next(han, ProcStruct);
  end;
  CloseHandle( han );
end;
Admin: Пользуемся тегами!
__________________
Caecus non indicat de colore
http://www.proedd.com

Последний раз редактировалось Admin, 24.09.2008 в 10:29.
Ответить с цитированием
  #4  
Старый 24.09.2008, 09:09
BITCH666 BITCH666 вне форума
Прохожий
 
Регистрация: 23.09.2008
Сообщения: 3
Репутация: 10
Вопрос

Цитата:
Сообщение от codeLocker
Пример ниже убивает процесс по заданому имени
а где здесь задаётся имя процесса? я не могу найти.
Ответить с цитированием
  #5  
Старый 28.09.2008, 07:27
abyss_by abyss_by вне форума
Прохожий
 
Регистрация: 24.09.2008
Сообщения: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от BITCH666
а где здесь задаётся имя процесса? я не могу найти.

Вообще здесь в параметре процедуры, но этот пример не убьет процесс.
Вот код, который найдет PID по имени. А дальше можно и "убить" процесс.

Код:
function GetProcessPidByName(fName: String): THandle;
 var
  hSnapshot: THandle;

   function ProcessPidByName(hProcess: DWord; fName: String): THandle;
    var
     ProcEntry: TProcessEntry32;
     ProcessPid: THandle;
   begin
     ProcEntry.dwSize:= SizeOf(ProcEntry);
     ProcessPid:= 0;
     if Process32First(hProcess, ProcEntry) then
      begin
        repeat if ProcEntry.szExeFile = fName then
         begin
          ProcessPid:= ProcEntry.th32ProcessID;
          Result:= ProcessPid;
          Exit;
         end;
        until not Process32Next(hProcess, ProcEntry)
        end;
       Result:= ProcessPid;
   end;

begin
  hSnapshot:= CreateToolhelp32Snapshot($2, 0);
   if hSnapshot <> INVALID_HANDLE_VALUE then
    Result:= ProcessPidByName(hSnapshot, fName);
   CloseHandle (hSnapShot);
end;
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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