Wyliczanie aktywnych procesów w systemie - rozbudowa

dział ogólny

Wyliczanie aktywnych procesów w systemie - rozbudowa

Nowy postprzez Koziol » wtorek, 10 listopada 2009, 16:46

Jaką metodę polecili byście do sprawdzania w trakcie pracy programu jaki aplikacje zostały uruchomione, a jakie zamknięte?

Mój pomysł to:
Struktura PROCESSENTRY32 wygląda następująco:
Kod: Zaznacz cały
typedef struct tagPROCESSENTRY32 {
  DWORD     dwSize;
  DWORD     cntUsage;
  DWORD     th32ProcessID;
  ULONG_PTR th32DefaultHeapID;
  DWORD     th32ModuleID;
  DWORD     cntThreads;
  DWORD     th32ParentProcessID;
  LONG      pcPriClassBase;
  DWORD     dwFlags;
  TCHAR     szExeFile[MAX_PATH];
}PROCESSENTRY32, *PPROCESSENTRY32;

co sekundę uruchamiać timer który sprawdzał by zawartość TStringList gdzie:
Kod: Zaznacz cały
TStringList * Lista;
(...)
index = (int)PROCESSENTRY32.th32ProcessID; // użyłem PROCESSENTRY32 bo nie ma sensu zapisywać jak przebiega pobieranie danych o procesie - jest to w poradzie
data = PROCESSENTRY32.szExeFile[MAX_PATH];
(...)

if(!SearchOf(index)) // funkcja sprawdzajaca czy proces został juz dodany
{
Lista->Insert(index, data);
}

// i Tu pojawia się problem jak sprawdzić czy proces został zamknięty?


można by też stworzyć dwie listy główna i tmp a następnie porównywać ich zawartości. czy to ma sens, nie wiem. A może jest jakaś łatwiejsza metoda?
Avatar użytkownika
Koziol
Intelektryk
Intelektryk
 
Posty: 144
Dołączył(a): niedziela, 13 lipca 2008, 17:36
Podziękował : 8
Otrzymał podziękowań: 2
System operacyjny: Windows XP Pro SP2
Kompilator: C++ Builder
    NieznanyNieznana

  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 14 gości

cron