Procesy i wątki

0

Witam
Czy ktoś mógłby mi napisać czy prawidłowo wywołuję funkcje tworzące listę procesów i powiązane z nimi wątki. Programik piszę w Borland c++ builder. Na komponencie TMemo mam zamiar wypisać proces i pod spodem moduły które wywołuje. Czy takie użycie funkcji jest prawidłowe?
Poniżej kod źródłowy:

if(Process32First(UchwytProcesu,&Proces))
{
Memo1->Lines->Add(Proces.szExeFile);
Memo1->Lines->Add("**");
if(Module32First(UchwytModulu,&Modul))
Memo1->Lines->Add(Modul.szModule);
Memo1->Lines->Add("**");
}

while(Process32Next(UchwytProcesu,&Proces))
{
Memo1->Lines->Add(Proces.szExeFile);
Modul.th32ProcessID = Proces.th32ProcessID;
Module32Next(UchwytModulu,&Modul);
Memo1->Lines->Add(Modul.szModule);

    }
0

O ja Cie borland!
ja to pamiętam ja miałem z 7 lat temu Borland 6, nie przypominam sobie na tamten czas aby do niego był taki komponent ułatwiający to.
Tak na marginesie zadajesz troche idiotyczne pytanie w stylu czy dobrze robisz, to czy dobrze na to pytanie odpowie Ci kompilator wywalając ewentualne błędy.
Moim zdaniem szybciej by było napisać taka aplikacje pod surowym winAPI np DEV cpp
CreateThradProcess i CreateProcess?
Nie programuje na windowsie i to winAPI jest mi trochę obce kiedyś dawno temu jak siedziałem częściej na windzie to troche się bawiłem.
ale z tego co widzę w MSDN to
to funkcja CreateProcess posiada przyjazny twojemu zamysłowi programistycznemu argument.
lpThreadAttributes ten argument Ci się przyda do określania dziedziczności wątków w obrębie tworzonych procesów.

Zresztą nie jestem pewien czy dobrze Cię rozumiem chcesz tworzyć jakieś procesy na bieŻąco (Boże, widzisz takie błędy i nie grzmisz) i szukać ich wątki czy chcesz po prostu listować istniejące procesy coś w stylu task managera?

0

PS: Człowiekowi palce uciekną na klawiaturze i zgubi literę lub pacnie za dużo na klawiaturze a ten rasistowski BOT od razu z człowieka robi analfabetę.
Dopiero teraz zorientowałem się, że nie jestem zarejestrowany i tak się dziwie czemu tu kur*** nie można edytować postów i stawiam duble, patrze a ja nie mam konta.
Już zarejestrowałem, do cache mi się login wpisał i myślałem, że założyłem konto to się chyba De ja vu nazywa.

Co do tematu napisz kolego co dokładnie chcesz zrobić

0

Co do tematu napisz kolego co dokładnie chcesz zrobić
Przecież dokładnie napisał: chce mieć listę procesów i powiązane z nimi wątki oraz „Na komponencie TMemo mam zamiar wypisać proces i pod spodem moduły które wywołuje

0
Azarien napisał(a):

Co do tematu napisz kolego co dokładnie chcesz zrobić
Przecież dokładnie napisał: chce mieć listę procesów i powiązane z nimi wątki

Ale nie napisał czy chce mieć listy procesów wyciągniętych z task managera czy chce wygenerować nowy proces i wątek a potem wypluć wynik do Tmemo, dla mnie jego pytanie zabrzmiało dwojako.
Nie wiem czy jemu chodzi o jego proces który sam utworzy, czy o te które aktualnie są w stanie aktywności

0

Witam chciałbym wylistować już istniejące procesy i moduły z których te procesy korzystają.
Chodzi mi o powiązanie modułu, z którego korzysta proces o podanym ID z tym konkretnym modułem.
Wiem że do wypisania listy wszystkich modułów służą funkcję Module32First i MOdule32Next
Do wypisania listy wszystkich procesów z kolei funkcje Process32First i Process32Next
Moim pytaniem jest jak wypisać listę o następujących właściwościach:
proces 1
lista modułów z których korzysta proces1

proces 2
lista modułów z których korzysta proces2

proces 3
lista modułów z których korzysta proces3

.
.
.

0

Przecież używając tych funkcji (o ile kod byłby poprany) można pobrać listę procesów i importowanych przez nie bibliotek DLL a nie wątków. Poniżej masz przykłady jak się tego używa tylko musisz sobie to przetłumaczyć na C++ Builder:
Jak pobrać listę procesów https://msdn.microsoft.com/en[...]op/ms686701%28v=vs.85%29.aspx
Jak pobrać listę wątków procesu https://msdn.microsoft.com/en[...]op/ms686852%28v=vs.85%29.aspx
EDIT:
Widzę że się z mieniło z wątków na moduły to:
Lista modułów https://msdn.microsoft.com/en[...]op/ms686849%28v=vs.85%29.aspx

0

Dziękuję za przykłady i za odpowiedzi
Chciałbym jeszcze dodać, że dla mnie ważny jest też układ wyników. Chciałbym uzyskać listę taką jaką przedstawiłem w poprzednim poście.
Wywołanie funkcji wylistuje najpierw wszystkie uruchomione procesy a potem wszystkie biblioteki dll z których korzystają te procesy.
Ja chciałbym uzyskać następujący wynik:

Proces 1
Lista modułów z których korzysta Proces 1

Proces 2
Lista modułów z których korzysta Proces 2

Proces 3
Lista modułów z których korzysta Proces 3

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0