Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 22.07.2009
Сообщений: 12
1

Отследить процесс в диспетчере задач

25.07.2012, 15:18. Показов 3144. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброе время суток! Такой вопрос у меня. Как можно отследить процесс (по имени) в диспетчере задач, мне получается надо если процесса нет то запустить определенную программу... Помогите кто чем может... заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.07.2012, 15:18
Ответы с готовыми решениями:

Скрытие процесса в диспетчере задач или неубиваемый процесс Windows 10
Помогите сделать скрытие процесса в диспетчере задач Windows 10

При закрытии формы не убивается процесс в диспетчере задач, а висит там
При нажатии на кнопку выполняется процедура buttonclick в которой написано close; программа...

Закрытие приложения в диспетчере задач
Всем добрый день Написал небольшую программку-игру. При создании формы выделяется память и...

Получить список запущенных процессов как в диспетчере задач
всем доброго времени суток! подскажите пожалуйста как получить список запущенных процессов как в...

1
89 / 70 / 9
Регистрация: 04.03.2012
Сообщений: 206
25.07.2012, 16:40 2
Лучший ответ Сообщение было отмечено L.A.M.E.R. как решение

Решение

Прочитать список всех запущенных Exe Проверить запущен ли Exe?
Пример на DELPHI
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
uses 
   Psapi, tlhelp32; 
 
procedure CreateWin9xProcessList(List: TstringList); 
var 
   hSnapShot: THandle; 
   ProcInfo: TProcessEntry32; 
begin 
   if List = nil then Exit; 
   hSnapShot := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
   if (hSnapShot <> THandle(-1)) then 
   begin 
     ProcInfo.dwSize := SizeOf(ProcInfo); 
     if (Process32First(hSnapshot, ProcInfo)) then 
     begin 
       List.Add(ProcInfo.szExeFile); 
       while (Process32Next(hSnapShot, ProcInfo)) do 
         List.Add(ProcInfo.szExeFile); 
     end; 
     CloseHandle(hSnapShot); 
   end; 
end; 
 
procedure CreateWinNTProcessList(List: TstringList); 
var 
   PIDArray: array [0..1023] of DWORD; 
   cb: DWORD; 
   I: Integer; 
   ProcCount: Integer; 
   hMod: HMODULE; 
   hProcess: THandle; 
   ModuleName: array [0..300] of Char; 
begin 
   if List = nil then Exit; 
   EnumProcesses(@PIDArray, SizeOf(PIDArray), cb); 
   ProcCount := cb div SizeOf(DWORD); 
   for I := 0 to ProcCount - 1 do 
   begin 
     hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or 
       PROCESS_VM_READ, 
       False, 
       PIDArray[I]); 
     if (hProcess <> 0) then 
     begin 
       EnumProcessModules(hProcess, @hMod, SizeOf(hMod), cb); 
       GetModuleFilenameEx(hProcess, hMod, ModuleName, SizeOf(ModuleName)); 
       List.Add(ModuleName); 
       CloseHandle(hProcess); 
     end; 
   end; 
end; 
 
procedure GetProcessList(var List: TstringList); 
var 
   ovi: TOSVersionInfo; 
begin 
   if List = nil then Exit; 
   ovi.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); 
   GetVersionEx(ovi); 
   case ovi.dwPlatformId of 
     VER_PLATFORM_WIN32_WINDOWS: CreateWin9xProcessList(List); 
     VER_PLATFORM_WIN32_NT: CreateWinNTProcessList(List); 
   end 
end; 
 
function EXE_Running(FileName: string; bFullpath: Boolean): Boolean; 
var 
   i: Integer; 
   MyProcList: TstringList; 
begin 
   MyProcList := TStringList.Create; 
   try 
     GetProcessList(MyProcList); 
     Result := False; 
     if MyProcList = nil then Exit; 
     for i := 0 to MyProcList.Count - 1 do 
     begin 
       if not bFullpath then 
       begin 
         if CompareText(ExtractFileName(MyProcList.Strings[i]), FileName) = 0 then 
           Result := True 
       end 
       else if CompareText(MyProcList.strings[i], FileName) = 0 then Result := True; 
       if Result then Break; 
     end; 
   finally 
     MyProcList.Free; 
   end; 
end; 
 
 
// Example 1: Is a Exe-File running ? 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
   if EXE_Running('Notepad.exe', False) then 
     ShowMessage('EXE is running') 
   else 
     ShowMessage('EXE is not running'); 
end; 
 
 
// Example 2: List running Exe-Files 
procedure TForm1.Button3Click(Sender: TObject); 
var 
   i: Integer; 
   MyProcList: TstringList; 
begin 
   MyProcList := TStringList.Create; 
   try 
     GetProcessList(MyProcList); 
     if MyProcList = nil then Exit; 
     for i := 0 to MyProcList.Count - 1 do 
       ListBox1.Items.Add(MyProcList.Strings[i]); 
   finally 
     MyProcList.Free; 
   end; 
end;
1
25.07.2012, 16:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.07.2012, 16:40
Помогаю со студенческими работами здесь

Как скрыть свой процесс в диспетчере задач?
можна зробити веселий прікол uses ShellAPI; procedure TForm1.FormClose(Sender: TObject; var...

Как сделать прогу невидимой в диспетчере задач?
Как сделать прогу невидимой в диспетчере задач?

Как добавить описание процесса, чтобы отображалось в диспетчере задач во вкладке процессы?
Встала такая проблема, как решить, подскажите?

Как вывести процессы в Делфи 7 как на диспетчере задач?
Как вывести процессы в делфи 7 как на диспетчере задач? В мемо или комбокс? И какой код куда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru