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/278969Hierbei 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#61288Codeaufbau
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=3564Entwicklungsumgebung
Die Applikation wurde wie folgt realisiert:
Editor: Embarcadero Rad Studio XE
OS: Windows 7 64 BitVielen Dank für eure Aufmerksamkeit und Geduld.
Ich freue mich auf konstruktive KritikenFeundliche Grüsse
Deforation
-