Logitech G19 Taskmanager - Codequalität



  • Hallo Zusammen

    Vor längerer Zeit hatte ich mal ein Problem bezüglich meines Projekts.
    http://www.c-plusplus.net/forum/278969

    Hierbei handelt es sich um einen Taskmanager, welcher für die G19-Tastatur von Logitech konzipiert wurde.

    Neben der Auflistung der einzelnen Prozesse werden auch die CPU- und Ram-Auslastung bzw. der User des Prozesses angezeigt.
    Ebenfalls lässt sich die Liste nach den verschiedenen Attributen sortieren und Prozesse beenden.

    Ein wesentliches Merkmal welches mir dabei wichtig war, ist die freie Gestaltung der Oberfläche über verschiedene Einstellungen.

    Einführung
    Wie im obigen Link entnommen werden kann, war der damalige Quelltext ziemlich unschön bzw. die Fehlerquellen waren schwer zu finden.
    Aus diesem Grund wurde mir damals ein Refactoring ans Herz gelegt.
    Ich nahm mich dieser Worte an und habe das Applet komplett neu programmiert.
    Dazu nun auch meine Frage.

    Eigentliche Frage
    Das Refactoring hat mich einige Zeit und Aufwand gekostet und ich muss sagen, dass ich aus meiner Sicht mit dem Ergebnis ziemlich zufrieden bin.
    Ich denke, dass ich einige Klassen,... auch in weiteren Projekt wieder brauchen kann.

    Dennoch wäre es für mich wichtig zu wissen, woran ich bin und deshalb würde ich mich sehr freuen, wenn sich jemand vielleicht mal ein bisschen den Quelltext ansehen könnte und ohne Scheu einen Kommentar dazu abgibt. 😉
    Denn ich möchte wirklich eine ehrliche Meinung bzw. Beurteilung meiner Arbeit.

    Wer weiss, vielleicht kann jemand ja sogar noch ein Stückchen Code gebrauchen 😃

    Funktionen
    Hier eine kleine Übersicht zu den Funktionen welche geboten werden.

    • Prozesse und deren Informationen auslesen inkl. 64 Bit

    • Name

    • User

    • CPU-Auslastung

    • RAM-Auslastung

    • Prüfung, ob ein Prozess keine Rückmeldung mehr gibt

    • Allgemeine Informationen

    • Gesamte CPU-Auslastung

    • Gesamter Arbeitsspeicherverbrauch

    • Steuerung

    • Sortierung der Liste nach oben genannten Prozessinformationen

    • Mehrsprachigkeit (Deutsch und Englisch)

    • Persönlich konfigurierbares Layout der Anzeige

    Ein Paar Screens des Applets sind hier zu finden.
    http://www.g15-applets.de/g19_taskmanager-1711-t7298.html#61288

    Codeaufbau
    Der Code wurde in mehrere Dateien (bwz. Klassen) aufgeteilt:

    • G19_Taskmanager.cbproj - Projektdatei

    • Main.cpp - Code welcher beim Start der Applikation ausgeführt wird. (Initialisiert alle Objekte,...)

    • Klassen

    • G19

    • lglcd.hpp - Wrapper für die G19-Ansteuerung

    • VLgLcdG19.hpp - Wrapper

    • Hilfsklassen

    • UnicodeIniFile.cpp - INI-Datei Handling

    • Main

    • LanguageChanger.cpp - Zuständig für Übernahme der Sprache (Anpassung der Labels,...) + Auslesung der Sprachdateien (Ressource in XML-Form)

    • ProcesslistCreator.cpp - Zeichnet das Bild zur Anzeige (Prozessliste, Headerbereich, Infobereich,...)

    • ThreadProcessReader.cpp - Liest alle Prozesse und deren Informationen aus

    • Updater.cpp - Funktionen für das Update-Handling

    • Settings

    • Definitions.cpp - Definition wichtiger Konstanten, enums und structs

    • Settings.cpp - Handling für die Speicherung und Auslesung der Einstellungen und deren Präsentation auf dem Formular

    • Ressourcen

    • Languages

    • english.xml, german.xml - Sprachdateien

    • Librarys

    • Wichtige bibliotheken (bsp. psapi.lib)

    • Forms

    • Enthält alle Frames der einzelnen Konfigurationsbereiche

    Download
    Der Sourcecode kann unter obigem oder nachfolgendem Link bezogen werden.
    http://www.g15-applets.de/download.php?id=3564

    Entwicklungsumgebung
    Die Applikation wurde wie folgt realisiert:
    Editor: Embarcadero Rad Studio XE
    OS: Windows 7 64 Bit

    Vielen Dank für eure Aufmerksamkeit und Geduld. 👍
    Ich freue mich auf konstruktive Kritiken 💡

    Feundliche Grüsse
    Deforation


Anmelden zum Antworten