Procesy i wątki

Odpowiedz Nowy wątek
Krzywy Młot
2015-10-06 23:21
Krzywy Młot
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);

    }

Pozostało 580 znaków

Bendnarecki
2015-10-07 01:44
Bendnarecki
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?

Pozostało 580 znaków

2015-10-07 01:51

Rejestracja: 4 lata temu

Ostatnio: 4 lata temu

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ć

edytowany 5x, ostatnio: Bendnarecki, 2015-10-07 01:59

Pozostało 580 znaków

2015-10-07 02:22

Rejestracja: 16 lat temu

Ostatnio: 1 minuta temu

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

Pozostało 580 znaków

2015-10-07 03:37

Rejestracja: 4 lata temu

Ostatnio: 4 lata temu

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

edytowany 1x, ostatnio: Bendnarecki, 2015-10-07 03:39

Pozostało 580 znaków

bumtram
2015-10-07 08:10
bumtram
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

.
.
.

Pozostało 580 znaków

2015-10-07 08:14

Rejestracja: 14 lat temu

Ostatnio: 1 minuta temu

Lokalizacja: Gorlice

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


Nie odpowiadam na PW w sprawie pomocy programistycznej.
Pytania zadawaj na forum, bo:
od tego ono jest ;) | celowo nie zawracasz gitary | przeczyta to więcej osób a więc większe szanse że ktoś pomoże.
edytowany 1x, ostatnio: kAzek, 2015-10-07 08:16

Pozostało 580 znaków

Biały Szczur
2015-10-07 09:02
Biały Szczur
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

Pozostało 580 znaków

Odpowiedz

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