Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Delphi


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Сарумян
Статус: Практикант
Рейтинг: 868
∙ повысить рейтинг »
Jimhucksly
Статус: 5-й класс
Рейтинг: 640
∙ повысить рейтинг »
Тимошенко Дмитрий
Статус: Студент
Рейтинг: 390
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Номер выпуска:1421
Дата выхода:20.08.2009, 03:05
Администратор рассылки:Калашников О.А., Руководитель
Подписчиков / экспертов:564 / 199
Вопросов / ответов:1 / 2

Вопрос № 171348: Здравствуйте уважаемые эксперты. Подскажите как мне вывести полный список запущенных процессов (не приложений)...



Вопрос № 171348:

Здравствуйте уважаемые эксперты. Подскажите как мне вывести полный список запущенных процессов (не приложений)

Отправлен: 15.08.2009, 02:59
Вопрос задал: Смирнов Михаил Владимирович, Посетитель
Всего ответов: 2
Страница вопроса »


Отвечает Сарумян, Практикант :
Здравствуйте, Смирнов Михаил Владимирович.
В разделе Uses подключите модуль TLHelp32, получится что-то вроде:
© Цитата: код
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TLHelp32, ComCtrls;


Объявите две переменных:
© Цитата: вырезка из кода
var
Form1: TForm1;
aSnapshotHandle: THandle;
aProcessEntry32: TProcessEnt ry32;


implementation


В процедуре обработчике (у меня было нажатие на кнопку) объявите переменную:
© Цитата: код
bContinue: BOOL;


В разделе кода обработчика напишите:
© Цитата: часть кода
aSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); //снимаем "отпечаток" (слепок) со списка процессов.
aProcessEntry32.dwSize := SizeOf(aProcessEntry32);
bContinue := Pro cess32First(aSnapshotHandle, aProcessEntry32);//Получаем "номер" первого процесса.


Все теперь в программе можно получать данные о процессах с помощью функций:
© Цитата: часть кода
ExtractFileName(aProcessEntry32.szExeFile) // имя exe файла процесса.
IntToHex(aProcessEntry32.th32ProcessID,8) //"номер" процесса в HEX-виде, цифра задает длину отображения HEX'а.


Код который вывод список exe файлов процессов в приложении.
В справке Delphi есть информация о TProcessEntry32, почитайте.
В случае если не хочется:
© Цитата:
typedef struct tagPROCESSENTRY32 {
DWORD dwSize;
DWORD cntUsage;
DWORD th32ProcessID;
DWORD th32DefaultHeapID;
DWORD th32ModuleID;
DWORD cntThreads;
DWORD th32ParentProcessID;
LONG pcPriClassBase;
DWORD dwFlags;
char szExeFile[MAX_PATH];
} PROCESSENTRY32;
typedef PROCESSENTRY32 * PPROCESSENTRY32;
typedef PROCESSENTRY32 * LPPROCESSENTRY32;
Members

dwSize

Specifies the length, in bytes, of the structure. Before calling the Process32First function, set this member to
sizeof(PROCESSENTRY32).

cntUsage

Number of references to the process. A process exists as long as its usage count is nonzero. As soon as its usage count becomes zero, a process terminates.

th32ProcessID

Identifier of the process. The contents of this member can be used by Win32 API elements.

th32DefaultHeapID

Identifier of the default heap for the process. The contents of this member has meaning only to the tool help functions. It is not a handle, nor is it usable by Win32 API elements.

th32ModuleID

Module identifier of the process. The contents of this member has meaning only to the tool help functions. It is not a handle, nor is it usable by Win32 API elements.

cntThreads

Number of execution threads started by the process.

th32ParentProcessID

Identifier of the process that created the process being examined. The contents of this member can be used by Win32 API elements.

pcPriClassBase

Base priority of any threads created by this process.

dwFlags

Reserved; do not use.

szExeFile

Path and filename of the executable file for the process.


Удачного программирования.

Приложение:

-----
Пришел, увидел, развернулся и ушел...

Ответ отправил: Сарумян, Практикант
Ответ отправлен: 15.08.2009, 04:07

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 253235 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает VolRus, 5-й класс :
    Здравствуйте, Смирнов Михаил Владимирович.
    Вот предлагаю два примера для получения списка процессов (и не только) и работы с ими
    Process_Viewer
    taskmon

    Ответ отправил: VolRus, 5-й класс
    Ответ отправлен: 15.08.2009, 09:36

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 253237 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.7 от 15.08.2009

    В избранное