Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

Zdziwiony

[C#] Uzyskanie listy aktywnych procesów

Rekomendowane odpowiedzi

Witam. Mam do Was pytanie: Jak uzyskać listę procesów w C# ? Coś szukam po necie i znaleźć nic konkretnego nie mogę... mam pewnien kod, ale nie działa (i go nie rozumiem :E)

 

Żeby nie było, że jestem leń :E

Taką funkcję kiedyś sam skleciłem w C++ :P

PROCESSENTRY32 proc32;  //deklaracja struktury
   HANDLE hSnapshot;       //uchwyt na CreateToolhelp32Snapshot
   hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
   //ustawiamy rozmiar struktury
   proc32.dwSize = sizeof(PROCESSENTRY32);

   //pierwsze wywolanie Process32First
   if(Process32First(hSnapshot, &proc32))
   {
       //wyświetlamy Process32First, czyli napis "[system Process]"
       string proces;
       //glowna petla wyświetlająca procesy przez Process32Next
       while(Process32Next(hSnapshot, &proc32))
       {
           proces = proc32.szExeFile; //konwersja na stringa zmiennej zawierającej procesy
           cout << proces << endl;
       }
   }
   return 0;
   CloseHandle(hSnapshot);

 

Pomoże ktoś z C# ? Z góry dzięki :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Skleciłem coś takiego:

Process[] localAll = Process.GetProcesses();
           string proces = localAll.ToString();
           MessageBox.Show(proces);

 

Jednak ta funkcja nie zwraca mi listy procesów... Chyba trzeba użyć jakiejś pętli... tylko jakiej ? I jak ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ech... moze naucz sie podstaw c# a nie zabieraj się za takie rzeczy.

Co zwraca metoda klasy statycznej GetProcesses()?

Do czego ją przypisujesz? - przypisujesz ją do tablicy typu Process. W takiej tablicy każdy element to jest obiekt typu Proces. To nie jest string, który możesz sobie wyswietlić. Co wiecej, próbujesz w ten sposób potraktować cała tablicę tych obiektów. W efekcie dostajesz string który jest zwracany przez próbę konwersji tablicy do stringa. W tym wypadku zwróci to poprostu typ tego obiektu czyli: System.Diagnostics.Process[]. Zobacz jak się postępuje z tablicami w jakimś kursie. Zobacz co zawierają obiekty typu Process.

 

http://msdn.microsoft.com/en-us/library/aa288453%28v=vs.71%29.aspx

http://msdn.microsoft.com/pl-pl/library/system.diagnostics.process%28v=vs.110%29.aspx

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tzn... Próbowałem zrobić to analogicznie do funkcji:

string[] filePathCache = Directory.GetFiles(path); 

gdzie można użyć pętli:

foreach (string Path in filePath)

Dlatego jakoś tak odruchowo przypisałem to do stringa :E

 

A w np. tym przykładzie:

http://msdn.microsoft.com/pl-pl/library/x8b2hzk8%28v=vs.110%29.aspx

 

Nie ma zapisanego wyświetlania listy procesów :/ (przynajmniej nic tu nie widzę)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dobra dałem radę :P

Dobrze myślałem tu o pętli foreach...

             Process[] procesyall = Process.GetProcesses();
            foreach (Process process in procesyall)
            {
                MessageBox.Show(process.ProcessName);
            }

 

Szkoda, że przynajmniej mnie na to nie nakierowałeś...

 

No nic dzięki za pomoc. Temat do zamknięcia.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

można to zrobić foreachem, forem, while do, do while... oczywiscie foreach najprostrzy, jesli nie potrzeba interatora. Dlatego pisałem - kurs, podstawy itp :) Pzdr

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...