Lade Inhalt...

Programmierung der Klasse TaskInfo für die Darstellung betriebssystemspezifischer Informationen

Praktikumsbericht / -arbeit 2002 13 Seiten

Informatik - Programmierung

Leseprobe

Inhaltsverzeichnis

1. Einleitung

2. Themengebiete
2.1. Erstellen von Klassen
2.2. Windows API-Funktionen
2.3. STL-Container

3. Praxisprojekt Klasse TaskInfo
3.1. Problemstellung
3.2. Anforderungen an die Klasse TaskInfo
3.2.1. Abfrage ganz gezielter Informationen
3.2.2. Prozess ID als Schnittstelle
3.2.3. Speicherung in einen STL-Container
3.2.4. Erweiterbarkeit für Unix-Systeme
3.3. Prozess Modellierung
3.3.1. Die Klasse ProcessInfo
3.3.2. Kapselung der Informationen
3.4. Vektor-Container als Informationsspeicher
3.5. Programmierung der Klassen
3.5.1. Die Funktion EnumProcesses
3.5.2. Die Funktionen OpenProcess und CloseHandle
3.5.3. Das Handle hProcess

4. Erweiterungen der Klasse
4.1. Unix-Kompatibilität
4.2. Einbindung in die Firmensoftware viad@t

5. Literaturverzeichnis

1.Einleitung

In der Entwicklerumgebung sind Systeminformationen verschiedener Prozesse sehr nützliche Mittel, um Programme zur Laufzeit zu kontrollieren. Auf Grund der Daten kann ein professioneller Entwickler Programme effizient und ressourcensparend programmieren und das Verhalten innerhalb eines bestimmten Betriebssystems beobachten. Die Programme selbst können aber auch auf die Systeminformationen zurückgreifen und dementsprechend reagieren.

Microsofts Windows stellt für diese Aufgabe den Taskmanager zur Verfügung. Dieses Werkzeug bereitet aber nur eine begrenzte Anzahl von vordefinierten Angaben auf und lässt sich darüber hinaus nicht in ein Programm einbinden beziehungsweise von einem Programm direkt nutzen. Der Taskmanager ist also nur zur Darstellung der wichtigsten Ressourceninformation zu gebrauchen.

Wenn allerdings Programme auf die Daten zugreifen sollen oder man nähere Angaben über den Prozessbetrieb wissen will, benötigt man die Windows-API[1] -Funktionen. Mit ihnen lassen sich alle relevanten systemnahen Angaben abfragen. Jedoch gibt es sehr viele solcher API-Funktionen, deren Zugriff nicht immer ganz einfach gestaltet ist. Die Lösung dieses Problems ist eine Klasse, die alle diese Aufgaben erledigt. Programme, die Systeminformationen benötigen, greifen über diese Klasse direkt darauf zu. Programmentwickler müssen sich damit nicht mehr mit den Windows-API-Funktionen beschäftigen, weil alle Funktionen in einer Klasse übersichtlich gebündelt sind.

2. Themengebiete

2.1. Erstellen von Klassen

Klassen sind ein wesentlicher Bestandteil der objektorientierten Programmierung. Sie fassen gleichartige Objekte zusammen und bilden damit einen Datentyp, der die Eigenschaften von seinen Objekten beschreibt. Klassen besitzen einen Namen und beinhalten Attribute beziehungsweise Eigenschaften, die Daten in den einzelnen Objekten speichern. Die Funktionalitäten und Fähigkeiten der Objekte werden in der Klasse in sogenannten Methoden definiert.

In der Deklaration einer Klasse beschreibt der Entwickler welche Eigenschaften ein Objekt haben soll, welche Fähigkeiten es besitzt und wie diese implementiert sind. Wenn ein Objekt gebildet werden soll, wird es nach den Angaben der Klasse erzeugt. Man nennt diesen Vorgang auch eine Instanz erzeugen bzw. instantiieren. Eine Klasse kann nur durch ein Objekt bzw. eine Instanz genutzt werden.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1: Beispiel einer Klasse in C++

2.2. Windows API-Funktionen

Die Windows-API bietet Funktionen, mit denen man das Betriebssystem steuern kann. Sie besteht in der Regel aus einer oder mehreren DLLs[2], die bestimmte Funktionen bereitstellen.

DLLs sind Dateien, deren Funktionen über jede unter Windows ausgeführten Anwendungen aufgerufen werden können. Eine Funktion in einer DLL wird zur Laufzeit dynamisch mit einer Anwendung verknüpft, von der sie gestartet wird. Unabhängig davon, wie viele Anwendungen eine Funktion in einer DLL aufrufen, ist diese Funktion nur in einer einzelnen Datei auf dem Datenträger enthalten. Sie wird also nur einmal in den Arbeitsspeicher geladen.

Die Windows-API umfasst die DLLs, aus denen sich das Windows-Betriebssystem zusammensetzt. Jede Windows-Anwendung interagiert direkt oder indirekt mit der Windows-API. Sie stellt sicher, dass sich alle Anwendungen, die unter Windows ausgeführt werden, konsistent beziehungsweise in sich schlüssig verhalten.

Neben der Windows-API sind noch weitere veröffentlichte Funktionen verfügbar. So setzt sich zum Beispiel die Schnittstelle für die Programmierung von nachrichtenverarbeitenden Anwendungsprogrammen[3] aus DLLs zusammen, die für das Schreiben von E-Mail-Anwendungen verwendet werden können. Für das Aufrufen von Funktionen in der Windows-API benötigt man eine entsprechende Dokumentation, wie die Microsoft Plattform SDK[4]. Der umfassende Text beschreibt, welche Funktionen verfügbar und wie sie einzubinden sind. Darüber hinaus gibt er eine große Menge von Zusatzinformationen und Querverweise zu Beispielen aus verschiedenen Bereichen.

2.3. STL-Container

Abbildung in dieser Leseprobe nicht enthalten

Die Standard[5] Template Library ist eine Bibliothek, die zum ANSI/ISO-Standard[6] von C++ gehört und auf der Basis von Templates beziehungsweise Mustervorlagen implementiert ist. Sie enthält viele Algorithmen und Datenstrukturen, die eine einfache Lösung häufig auftretender Programmieraufgaben ermöglichen. Eine Vielfalt von Implementierungen werden durch die Anwendung dieser Bibliothek unnötig. Aufgrund ihrer speziellen Architektur ist sie also vielseitiger, leistungsfähiger, sicherer und einfacher zu benutzen als viele andere Bibliotheken.

In der folgenden Übersicht sind die verschiedenen Container in Sequenzen und assoziativen Sequenzen beziehungsweise Listen und Mengen unterteilt. Darin kann man erkennen, dass sequentielle Container geordnete Behälter sind, in denen jedes Element eine bestimmte Position besitzt. Diese Position ist durch den Zeitpunkt und den Ort des Einfügens bestimmt. Assoziative Container sind dagegen sortierte Behälter, bei denen die Position der Elemente durch ein Sortierkriterium bestimmt wird.

[...]


[1] API: Application Programming Interface (deutsch: Schnittstelle zur Anwendungsprogrammierung)

[2] DLL: Dynamic Link Libraries (deutsch: Dynamische Linkbibliotheken)

[3] z.B.: MAPI: Messaging Application Programming Interface

[4] SDK: Software Developer Kit

[5] STL: Standard Template Library

[6] ANSI/ISO: American National Standard Institute / International Standard Organisation

Details

Seiten
13
Jahr
2002
ISBN (eBook)
9783638279079
Dateigröße
703 KB
Sprache
Deutsch
Katalognummer
v25203
Institution / Hochschule
Duale Hochschule Baden-Württemberg, Stuttgart, früher: Berufsakademie Stuttgart
Note
1,7
Schlagworte
Programmierung Klasse TaskInfo Darstellung Informationen

Autor

Teilen

Zurück

Titel: Programmierung der Klasse TaskInfo für die Darstellung betriebssystemspezifischer Informationen