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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2008, 16:39   #1
One.Love
Пользователь
 
Регистрация: 13.01.2008
Сообщений: 91
Вопрос как получить список запущенных процессов на компе

Народ если не затруднит киньте пожалуйста код как получить список запущенных процессов на компе, вообщем тот же самый диспетчер задач.
One.Love вне форума Ответить с цитированием
Старый 19.02.2008, 22:32   #2
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

В общем эта функция перебирает процессы по именам, чтоб нужный потом завершить, переделай немного, так чтоб при переборе полученный процесс в TStringList записывался и это будет результатом.
Код:
Uses Tlhelp32;
...
function KillTask(ExeFileName:string):integer;
const
PROCESS_TERMINATE=$0001;
var
Co:BOOL;
FS:THandle;
FP:TProcessEntry32;
begin
result:=0;
FS:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
FP.dwSize:=Sizeof(FP);
Co:=Process32First(FS,FP);
while integer(Co) <> 0 do
begin
if ((UpperCase(ExtractFileName(FP.szExeFile))=UpperCase(ExeFileName)) or
(UpperCase(FP.szExeFile)=UpperCase(ExeFileName))) then
Result:=Integer(TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0),
FP.th32ProcessID),0));
Co:=Process32Next(FS,FP);
end;
CloseHandle(FS);
end;
P.S. завтра на работу некогда переделывать.
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 23.02.2008, 20:27   #3
One.Love
Пользователь
 
Регистрация: 13.01.2008
Сообщений: 91
По умолчанию

чёто недогоняю, ну может переделаешь как время будет?
Просто срочно надо
One.Love вне форума Ответить с цитированием
Старый 23.02.2008, 22:26   #4
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Код:
Uses Tlhelp32;
...
function GetProcess:TStringList;
const
PROCESS_TERMINATE=$0001;
var
Co:BOOL;
FS:THandle;
FP:TProcessEntry32;
begin
result:=TStringList.Create;
FS:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
FP.dwSize:=Sizeof(FP);
Co:=Process32First(FS,FP);
while integer(Co) <> 0 do
begin
result.Add(FP.szExeFile);
Co:=Process32Next(FS,FP);
end;
CloseHandle(FS);
end;
Использование
memo1.Lines:=GetProcess;

Это самое простое. Ну что сложно?
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 24.02.2008, 22:14   #5
Alex.rus
Пользователь
 
Аватар для Alex.rus
 
Регистрация: 02.12.2007
Сообщений: 26
По умолчанию

Добаляете на форму ListView, Button и вставляете код

Код:
Uses
TLHELP32
...
procedure TForm1.Button1Click(Sender: TObject);
var
  hSnapshoot: THandle;
  pe32: TProcessEntry32;
begin
ListView1.Items.Clear;
hSnapshoot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
pe32.dwSize := SizeOf(TProcessEntry32);
if (Process32First(hSnapshoot, pe32)) then
repeat
ListView1.Items.Add.Caption:=IntToStr(pe32.th32ProcessID);
ListView1.Items.Item[ListView1.Items.Count-1].SubItems.Add(StrPas(pe32.szExeFile));
until not Process32Next(hSnapshoot,pe32);
CloseHandle(hSnapshoot);
end;

procedure TForm1.FormShow(Sender: TObject);
begin
Button1.Click;
end;
Но всетаки попробуйте переделать функцию Air-а.

Последний раз редактировалось rpy3uH; 19.08.2008 в 09:13.
Alex.rus вне форума Ответить с цитированием
Старый 01.04.2008, 17:45   #6
Noor
Участник клуба
 
Аватар для Noor
 
Регистрация: 01.11.2006
Сообщений: 1,051
По умолчанию

А как мне найти нужный мне процесс (если я знаю его имя) и завершить его ???
Noor вне форума Ответить с цитированием
Старый 01.04.2008, 18:02   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

http://programmersforum.ru/showthread.php?t=14288
http://programmersforum.ru/showthread.php?t=12626
mihali4 вне форума Ответить с цитированием
Старый 15.03.2009, 19:21   #8
Scabby
Пользователь
 
Аватар для Scabby
 
Регистрация: 20.01.2009
Сообщений: 26
По умолчанию

никак не получается разобраться.
знаю что тема поднималась кучу раз, но все же.
получаю список приложений в ListBox'е по кнопке.
можно ли мне как-то снять задачу в нем?
или нужно через StringGrid?
не знаю как перейти от Листбокса к СтрингГриду.
И не совсем догоняю как получить хэндлы всех процессов.
кто-нибудь может помочь чайнику...

в прикрепленном файле то что имеется на данный момент.
Вложения
Тип файла: zip Диспетчер.zip (278.4 Кб, 118 просмотров)
Осознание того,что есть место "гдевсехорошо" даёт надежду,что ещё не все потеряно.
Scabby вне форума Ответить с цитированием
Старый 16.03.2009, 19:25   #9
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Зацени мой диспетчер.
Это новая версия, за одно протестируешь.
P.S. "Проводник" с косяками работает, я его ещё не доделал
Вложения
Тип файла: zip Диспетчер задач 2.2.4.zip (295.2 Кб, 214 просмотров)
Всё гениальное - просто!

Последний раз редактировалось Air; 16.03.2009 в 19:27.
Air вне форума Ответить с цитированием
Старый 16.03.2009, 23:24   #10
Scabby
Пользователь
 
Аватар для Scabby
 
Регистрация: 20.01.2009
Сообщений: 26
По умолчанию

прикольная прога)
только с размерами окон проблемки)
надписи не кнопках некоторых не совсем видно)
короче инферфейс чуть подправить и суппер)

а мне прогу на Делфи надо(
Осознание того,что есть место "гдевсехорошо" даёт надежду,что ещё не все потеряно.
Scabby вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить список процессов? SoLL Win Api 19 28.01.2012 09:52
Получить список файлов выбранного каталога в MFC DPRO Visual C++ 2 17.08.2008 22:34
Получить список сетевых принтеров Старовъръ Win Api 4 12.08.2008 17:06
Получить список папок Иллидан Общие вопросы Delphi 1 22.03.2008 15:24
Как получить список запускаемых программ? kozei Win Api 8 01.11.2007 16:07