Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.03;
Скачать: CL | DM;

Вниз

Отследить измениение списка запущенных в системе процессов   Найти похожие ветки 

 
DelphiN! ©   (2006-07-19 14:46) [0]

Необходимо отследить изменение списка запущенных процессов в системе, может в системе есть событие, которое генерируется при изменении списка процессов(создании\удалении)?


 
Чапаев ©   (2006-07-19 15:43) [1]

По таймеру отслеживай -- простейший вариант.


 
Rouse_ ©   (2006-07-19 16:46) [2]

Есть PsSetCreateProcessNotifyRoutine()


 
Ketmar ©   (2006-07-19 16:58) [3]

в общем случае -- нет такого события.


 
AbrosimovA ©   (2006-07-20 10:47) [4]

Вот, работающий пример:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, WbemScripting_TLB, StdCtrls;

type
 TForm1 = class(TForm)
   Memo1: TMemo;
   procedure FormCreate(Sender: TObject);
 private
  FServices: ISWbemServices;
  FLocator:       TSWbemLocator;
  FSink1,FSink2 : TSWbemSink;

  procedure ProcessCreated(Sender: TObject; var objWbemObject: OleVariant;
        var objWbemAsyncContext: OleVariant);
  procedure ProcessDeleted(Sender: TObject; var objWbemObject: OleVariant;
        var objWbemAsyncContext: OleVariant);
 public
   { Public declarations }
 end;

const
 wbemConnectFlagUseMaxWait = $00000080;
var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ProcessCreated(Sender: TObject; var objWbemObject: OleVariant;
  var objWbemAsyncContext: OleVariant);
begin
Memo1.Lines.Add("Запущен процесс");
end;

procedure TForm1.ProcessDeleted(Sender: TObject; var objWbemObject: OleVariant;
  var objWbemAsyncContext: OleVariant);
begin
Memo1.Lines.Add("Процесс остановлен");
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
FLocator:=TSWbemLocator.Create(Self);
FServices := FLocator.ConnectServer(".", "root\cimv2", "",
                "", "", "", wbemConnectFlagUseMaxWait, nil);

FSink1 := TSWbemSink.Create(self);
FSink1.OnObjectReady := ProcessCreated;
FServices.ExecNotificationQueryAsync(FSink1.DefaultInterface,
 "SELECT * FROM __InstanceCreationEvent WITHIN 0.1 WHERE TargetInstance ISA "Win32_Process"", "WQL", 0, nil, nil);

FSink2 := TSWbemSink.Create(self);
FSink2.OnObjectReady := ProcessDeleted;
FServices.ExecNotificationQueryAsync(FSink2.DefaultInterface,
 "SELECT * FROM __InstanceDeletionEvent WITHIN 0.1 WHERE TargetInstance ISA "Win32_Process"", "WQL", 0, nil, nil);
end;

end.



Страницы: 1 вся ветка

Текущий архив: 2006.12.03;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.034 c
9-1139164310
HPR
2006-02-05 21:31
2006.12.03
И опять о плавности...


2-1163332223
JIN_S
2006-11-12 14:50
2006.12.03
Вопрос о TDateTimePicker (возможность выбора определенных дней).


15-1163143166
Орион
2006-11-10 10:19
2006.12.03
Служба тех. поддержки американского хостинга


2-1163340303
AlexanderMS
2006-11-12 17:05
2006.12.03
Сделать окно активным.


9-1139388127
Creative
2006-02-08 11:42
2006.12.03
Save/Load





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский