2. C# – Jak zbudować prosty menedżer zadań?

Obrazek z kodem C#

W tym wpisie pokażę w jaki sposób w języku C# zbudować prosty Menedżer Zadań dla systemu Windows. Jak napisałem w pierwszym wpisie poświęconym językowi C# i Visual Studio, przeprowadzę cię w jak najszybszy sposób do osiągnięcia celu. Nie będę wchodził w szczegóły języka jeśli nie będzie to absolutnie niezbędne do zrozumienia zadania.

Najpierw pomysł, potem realizacja
_____

Zanim przystąpimy do realizacji zadania, musimy zastanowić się nad funkcjonalnościami, jakie ma oferować nasza aplikacja. W tym celu najlepiej zaparzyć sobie dobrą kawę i pomyśleć. Załóżmy więc, że masz już kawę i wykombinowałeś razem ze mną, że nie chcesz tworzyć klona oryginalnego Menedżera Zadań Windows – to byłoby kompletnie bez sensu, bo Windowsowy oryginał jest jak by nie patrzeć rozbudowaną aplikacją, a my nie chcemy robić aż tak rozbudowanej aplikacji na dzień dzisiejszy. Załóżmy więc, że wyróżnikiem naszej aplikacji będzie nadzorowanie uruchomionych procesów i wyświetlanie komunikatu o uruchomieniu procesu posiadającego zdefiniowaną przez nas nazwie.

Tworzymy szkielet aplikacji
_____

Aby stworzyć szkielet aplikacji uruchamiamy Visual Studio i klikamy w kafelek Create a new project.

Kolejnym krokiem jest wyszukanie pozycji Windows Forms App (.NET Framework). Ważne, aby wybrać dokładnie pozycję zaznaczoną kolorem zielonym. Pozycje Windows Forms App są dwie, ale nam chodzi o tę z napisem w nawiasie.

Wybieramy zaznaczoną pozycję i klikamy Next.

Na kolejnym okienku, które się wyświetli podajemy Nazwę projektu, Lokalizację, Nazwę solucji (dla wygody VisualStudio wprowadza ją taką samą jak nazwa projektu – i my też tak zróbmy) oraz wersję frameworka Target Framework. Wersję frameworka pozostawiamy taką, jaką proponuje nam VisualStudio (u mnie 4.7.2).

Wprowadźmy nazwę TaskManager i zmieńmy lokalizację. W tym celu najłatwiej utworzyć na pulpicie folder TaskManager i tam właśnie zapisać projekt.

Klikamy Create.

Tworzenie projektu APLIKACJI DESKTOPOWEJ

Odtąd potrafisz utworzyć projekt tzw. aplikacji desktopowej na platformę Windows. Każda tworzona przeze mnie aplikacja desktopowa będzie składała się z czynności opisywanych powyżej, więc będę odnosił cię do tego wpisu.

Zmieniamy układ okien w VS (Visual Studio)
_____

Po utworzeniu projektu naszym oczom ukaże się taki widok:

Zmieńmy pozycję drzewka po prawej stronie tak, aby pojawiło się po lewej stronie: W tym celu klikamy myszką na okienko Solution Explorer i przytrzymując klawisz, przeciągamy na skrajny znacznik po lewej stronie.

Finalny efekt powinien wyglądać tak:

Zmiana atrybutów formularza i uruchomienie aplikacji
_____

No to na początek trochę objaśnień:

  • Solution Explorer – czyli drzewko projektu po lewej stronie.
    Tu widzimy wszystkie pliki projektu. Możemy je otwierać, usuwać, edytować.
  • Form1 – to nasz główny formularz lub inaczej główna forma aplikacji.
    W skrócie jest to okienko interfejsu tworzonej przez nas aplikacji.

W okienku Solution Explorera pod spodem znajdują się zakładki. Kliknij najpierw na formularz Form1, a następnie na zakładkę Properties. Jest to okienko właściwości obiektu zgodne z kontekstem wywołania (my kliknięciem Form1 wywołaliśmy właściwości właśnie tego formularza, czyli naszego okna aplikacji).

  • Zaznaczone czerwonym kolorem pole TEXT
    W tym miejscu wpisujemy tekst wyświetlany na głównej belce aplikacji
  • Zaznaczone żółtym kolorem pole Name
    To bardzo ważne pole. Nie możesz dodawać tu spacji!
  • Zaznaczone zielonym kolorem pole ForeColor
    Tu można wybrać kolor okienka aplikacji.

Okienko właściwości – PROPERTIES

Jeżeli nie widzisz tej zakładki, kliknij klawisz F4.

Naszym pierwszym zadaniem będzie ustawienie tekstu na głównej belce aplikacji „Task Manager 2022 Professional” 🙂 Natomiast w pole Name wpisz MainForm, co oznaczać będzie główny formularz aplikacji. A następnie naciśnij kombinację klawiszy CTRL + F5, co spowoduje uruchomienie aplikacji.

Hurra! Nasza pierwsza aplikacja desktopowa! No może rzeczywiście jeszcze nic nie robi oprócz wyświetlania okienka, ale od czegoś trzeba zacząć.

Wstawiamy komponent na formularz
_____

Za pomocą kombinacji klawiszy CTRL + ALT + X wywołamy teraz okienko Toolbox. Można je też wywołać klikając w głównym pasku menu Visual Studio pozycję View -> Toolbox.

Z okienka Toolbox wybieramy pozycję CommonControls -> ListView i klikamy w nią dwukrotnie lub przeciągamy myszką na formularz.

Teraz ustawmy nazwę naszego przeciągniętego komponentu ListView w okienku Properties (wywołanie F4) na processList.
Pamiętaj o tym, że aby zobaczyć właściwości komponentu ListView w okienku Properties, musisz najpierw na nie kliknąć, a dopiero potem nacisnąć F4 lub przejść do zakładki properties.

Teraz kliknij prawym przyciskiem myszy na processList i wybierz Edit Columns.

Wyświetli się okienko poniżej:

Po kliknięciu w przycisk Add po prawej stronie widzimy właściwości dodanej kolumny. Chcemy, aby nasz komponent przechowywał listę procesów. Załóżmy więc, że potrzebujemy 3 kolumny.

  • Id – każdy proces w systemie ma swój unikalny numer Id, dzięki któremu jest identyfikowany przez system
  • Nazwa – nazwa procesu
  • Nazwa okna aplikacji – jeśli proces nie jest tylko procesem działającym w tle, a posiada okna widoczne w systemie, to właśnie w tej kolumnie je wyświetlimy.

Doprowadźmy naszą listę do widoku, jak u mnie:

Zamiast nazwy Name jak na obrazku (druga pozycja, tuż pod Id) wpisać musimy ProcessName. Klikamy OK i przechodzimy ponownie do okienka właściwości komponentu processList. Szukamy właściwości o nazwie View i wybieramy opcję Details.

I oto jest nasza niemal pierwsza wersja menedżera procesów!

Trochę kodu nie zaszkodzi
_____

Teraz z okienka Toolbox przeciągnij na formularz komponent o nazwie Button. Jego właściwość Name ustaw na generateProcessList a wyświetlany tekst (właściwość Text) na Załaduj listę procesów. Po czym kliknij na niego dwukrotnie, aby przejść do… kodu!

Przenieśliśmy się do miejsca, w którym zdefiniujemy reakcję na naciśnięcie przycisku.

Na rozgrzewkę dodajmy okienko z informacją, że obsługa ładowania procesów jest w trakcie opracowywania i pojawi się w nowej wersji naszej aplikacji. W tym celu akcja dla przycisku powinna wyglądać tak:

private void generateProcessList_Click(object sender, EventArgs e)
{
     MessageBox.Show("Funkcjonalność listy procesów pojawi się w wersji 2.0! :)");
}

MessageBox.Show();

Ta funkcja wyświetla nam komunikat o treści, jaką podamy w nawiasie. Zawarta musi być ona w cudzysłowie. Przyda nam się jeszcze nie raz w celu generowania komunikatów.

W kolejnej części zajmiemy się obsługą procesów
_____

Nauczymy się je wyświetlać, zabijać je (tak nazywa się nieoczekiwane kończenie pracy procesu) i robić z nimi inne przydatne rzeczy przy okazji ucząc się budować aplikacje desktopowe.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *