Aktives GUI-Element
Statisches GUI-Element
Quelltext
WPS-Objekt
Datei/Pfad
Befehlszeile
Inhalt Eingabefeld
[Tastenkombination]
SigmaMD5
Ein Dienstprogramm zum Prüfen von message digests
Vorbemerkung
Grund für die Entwicklung dieses Programms war, daß ich Schwierigkeiten bei der Installation von eComStation hatte und eine Möglichkeit benötigte, die Datenintegrität der CDs zu überprüfen. Ich hatte die elektronisch gelieferte Version von eComStation erworben und von den beiden ISO-Abbildern CDs erstellt, aber die Installation funktionierte nicht!
Es begann der übliche Vorgang zum Ausschließen von Ursachen, wobei es zuerst galt, die Datenintegrität und Korrektheit der Start-CD zu überprüfen. Die beiden ISO-Abbilddateien hatte ich problemlos entpacken können, aber bezüglich der Start-CD war ich mir nicht sicher. Auf der CD fiel mir eine Datei namens MD5SUM.TXT auf. Darin waren MD5-Prüfsummen für sämtliche Dateien angegeben. Ich fand ein Programm namens md5sum, welches Prüfsummen für einzelne Dateien erstellt, aber dies für jede einzelne Datei auf der CD durchzuführen, schien mir wenig attraktiv. Daher schaute ich mich nach anderen Programmen um, die mehrere Dateien verarbeiten konnten. Eine kurze Suche bei Hobbes brachte leider nicht das gewünschte Ergebnis, auch wenn mehrere MD5-Prüfprogramme erhältlich waren.
Eine ausgeweitete Suche lieferte den Treffer MD5summer, aber dabei handelte es sich um ein Windows-Programm. Nichtsdestotrotz konnte ich damit eine Überprüfung meiner Start-CD durchführen, die ergab, daß eine Reihe von Dateien defekt waren. Bei der Rücksprache mit Mensys stellte sich jedoch heraus, daß die Dateien korrekt und einige Prüfsummen fehlerhaft waren!
Der Grund für die fehlgeschlagende Installation war übrigens ein etwas überempfindliches CD-Laufwerk.
Da ich kein Windows-Fan bin, mir aber die Funktionsweise von md5summer gefiel, kam mir in den Sinn, ein PM-Programm mit einer ähnlichen Oberfläche zu schreiben.
OS/2 Presentation Manager Programmingvon Charles Petzold, das ich zur selben Zeit wie Visual Age gekauft hatte. Wer sich einmal an der Programmierung für PM versuchen will, dem kann ich Petzolds meiner Meinung nach exzellentes Buch für den Einstieg sehr empfehlen.
Md5summer als Vorlage vereinfachte das grundlegende Design. Mein Ziel war es, eine Datei mit einer Liste von Dateien und den zugehörigen MD5-Prüfsummen (wie z.B. MD5SUM.TXT) einzulesen und schnell festzustellen, ob diese korrekt waren. Ich werde Sie nicht mit all den Programmierfehlern langweilen, die ich gemacht habe, bevor ich schließlich etwas in den Händen hatte, mit dem ich meine CD unter OS/2 prüfen konnte.
MD5
(Siehe http://www.ietf.org/rfc/rfc1321.txt.)
Während meiner Suche nach einem Algorithmus für MD5 fand ich heraus, daß es mindestens zwei Vorgänger namens MD2 und MD4 gegeben hatte. Ich habe keine Ahnung, ob es jemals MD1 oder MD3 gab, auch wenn es Metadata3 gibt, das manchmal MD3 genannt wird. Wie bei allen Prüfsummen, CRCs usw., so handelt es sich auch beim MD5-Algorithmus um nichts anderes als eine arithmetische Umformung von Eingabedaten, die diese auf einen Wert reduziert. CRCs sind typischerweise 16 oder 32 Bit lang, MD4 und MD5 aber 128 Bit. Die Umformung wird auf eine Nachricht (message) beliebiger Länge angewendet und liefert eine 128-Bit-Prüfsumme oder auch Kurzfassung (digest). Daher der Name message digest und die Abkürzung MD. Die Methode zur Erstellung dieses message digest wurde von Professor Ronald L. Rivest vom MIT entwickelt, wie auch die Versionen MD2 und MD4. Zwar ähneln sich die Algorithmen zu einem gewissen Grad, jedoch unterscheidet sich das Design von MD2 wesentlich von dem der Versionen MD4 und MD5, da es für 8-Bit-Rechner optimiert war. MD4 und MD5 wurden auf 32-Bit-Rechner ausgelegt. MD5 wurde zur Behebung einiger bei MD4 entdeckter Schwächen entwickelt, d.h. es bietet eine höhere Prüfsicherheit bei geringerer Wahrscheinlichkeit fehlerhafter Ergebnisse. Insgesamt stellt MD5 ein sehr sicheres Verfahren zur Überprüfung der Datenintegrität dar und ist verläßlicher als andere gemeinhin eingesetzten Methoden.
Das Programm
Die aktuelle Version 1.02 meines Programms ist als komprimiertes Archiv SigmaMD5-1-2.zip von fünf Dateien erhältlich:
- readme.txt
- Datei mit allgemeinen Informationen
- SigmaMD5.exe
- ausführbare Programmdatei
- SigmaMD5.hlp
- Hilfedatei
- SigmaMD5.dll
- eine DLL mit ausführbarem Code zur Verarbeitung großer Dateien
- SigmaMD5.MD5
- die Datei mit den MD5-Prüfsummen obiger Dateien
Installation
Da ich meine Aufmerksamkeit ganz dem Programm an sich widmen wollte, habe ich weder ein Installationsskript noch
ein Installationsprogramm geschrieben. Die ZIP-Datei muß nur in ein Verzeichnis entpackt werden, vorzugsweise eines,
welches sich in der Anweisung PATH
in der CONFIG.SYS befindet. Die Hilfedatei
kann in ein Verzeichnis verschoben werden, das in der Anweisung HELP
aufgeführt wird, genauso, wie die
DLL in ein Verzeichnis der Anweisung LIBPATH
verschoben werden kann (ein Vorschlag eines Anwenders). Zur
Vereinfachung der Bedienung empfiehlt es sich, Dateien mit der Endung .MD5 mit
SigmaMD5 zu verknüpfen. Ordnet man die Dateien auch dem Editor E oder einem anderer
Editor seiner Wahl zu, läßt sich nach einem Klick mit der rechten Maustaste auf ein Dateiobjekt eines der beiden
Programme über den Menüeintrag Öffnen auswählen. Am einfachsten läßt sich diese
Zuordnung mit Assoedit von Henk Kelder
bewerkstelligen. Wählen Sie darin Associations > Associations by file filter.
Fügen Sie zuerst den Filter *.MD5 hinzu, und rufen Sie dann mit Hilfe der Schaltfläche
Add den Zuordnungsdialog auf und geben den Pfad zu SigmaMD5.exe ein. Wiederholen Sie dies für den Editor.
Technische Daten
Die aktuelle Version ist 1.02. Die erste bei Hobbes allgemein erhältliche Version war 0.73, und eine Sonderversion 0.902 wurde mit eComStation 1.2 Media Refresh ausgeliefert. Die aktuelle Version unterscheidet sich von den früheren durch die Unterstützung großer Dateien und Dateifilter. Sie hat folgende technische Daten:
-
Erzeugt und prüft 128-Bit-MD5-Prüfsummen unter Verwendung mehrerer Threads.
-
Kann Dateien von bis zu 2 GB auf FAT32 und HPFS sowie 2 TB auf JFS verarbeiten.
-
Ein einer Stapeldatei dürfen sich maximal 32.768 Dateien befinden.
-
Funktioniert unter OS/2 Warp 4, eCS 1.0, 1.1 und 1.2. (Weitere Versionen funktionieren wahrscheinlich ebenfalls, wurden aber nicht getestet.)
Der Speicherverbrauch liegt bei 1 MB zuzüglich der Größe der zu lesenden/schreibenden Listendatei, da diese direkt in den Speicher geladen wird.
Funktion
Dieses Programm dient hauptsächlich zu zwei Zwecken: erstens der Prüfung, und zweitens der Erzeugung von MD5-Prüfsummen unter Verwendung einer Datei, die eine Liste mit Namen der Dateien und der zugehörigen Prüfsummen enthält. Das Format dieser "Listen"-Datei ist standardisiert und mit der Ausgabe des LINUX-Programms GNU MD5Sum kompatibel. In dieser Datei können zwei Arten von Zeilen vorkommen: Kommentare und MD5-Prüfsummen. Ein Kommentar beginnt mit einem Gatterzeichen (#), gefolgt von dem Kommentar, oder ist leer. Eine Prüfsummenzeile beginnt mit der 128-Bit-MD5-Prüfsumme als 32 Zeichen lange Zeichenkette ab Spalte eins. Nach der Prüfsumme folgen ein Leerzeichen und ein Stern (*). Auf den Stern folgt der Pfad der Datei, aus der die Prüfsumme generiert wurde. Da Linux als Pfadtrenner nach rechts geneigte Schrägstriche (slashes) verwendet, wandele ich diese intern um und zeige sie in meinem Programm als nach links geneigte Schrägstriche (backslashes) an. Aus Kompatibilitätsgründen werden sie beim Schreiben der MD5-Listendatei jedoch wieder in slashes umgewandelt. Als Dateiendung einer Listendatei wird im allgemeinen .txt oder .md5 verwendet. Mein Programm schreibt diese Dateien stets mit der Endung .MD5.
Prüfen
Die einfachste Methode zum Prüfen einer Datei oder Liste von Dateien ist ein Doppelklick auf eine entsprechende
MD5-Datei - vorausgesetzt, daß der Dateityp SigmaMD5 zugeordnet wurde. Um festzustellen, ob das Programm ordnungsgemäß
funktioniert, doppelklicken Sie am besten auf SigmaMD5.MD5. SigmaMD5 wird sofort geladen
und der Inhalt der MD5-Datei über einen separaten Thread in den Speicher gelesen. Die ersten Zeilen werden - ohne
Kommentare - im Listenbereich des Fensters angezeigt. Die Zeilen sind folgendermaßen aufgebaut: eine LED, dann der Pfad der zu verarbeitenden Datei und schließlich die MD5-Prüfsumme.
Die LEDs können weiß, gelb, grün oder rot sein, was jeweils dem Status Verarbeitung noch nicht
erfolgt
, Verarbeitung läuft
, Verarbeitung mit korrekter Prüfsumme abgeschlossen
und
Verarbeitung mit Prüfsummen oder Dateifehler abgeschlossen
entspricht.
Abb. 1: Hauptfenster
Die Prüfsumme jeder Datei wird umgehend errechnet und mit der Prüfsumme in der Listendatei verglichen. Bei Übereinstimmung wird die LED in der jeweiligen Zeile auf grün gesetzt, ansonsten auf rot. Während eine Datei verarbeitet wird, werden Dateiname, Pfad und Größe im Statusbereich angezeigt, ebenso die Anzahl bisher verarbeiteten Dateien und die Gesamtanzahl der zu verarbeitenden Dateien. Diese Informationen werden mittels zweier Fortschrittsanzeigen dargestellt, die sowohl den Status der aktuellen Datei sowie des gesamten Prüflaufes anzeigen. Ich habe versucht, eine wahrheitsgemäße Anzeige des Status des gesamten Prüflaufs anzugeben, indem zuerst die Gesamtgröße sämtlicher in der Liste angegebener Dateien ermittelt und dann die Anzahl gelesener Bytes prozentual angezeigt wird. In der Praxis stellte sich jedoch heraus, daß die dafür benötigte Zeitspanne äußerst lang werden kann, weswegen diese Berechnung nur bei weniger als 200 Dateien durchgeführt wird. Andernfalls wird einfach die Anzahl bereits verarbeiteter Dateien in Prozent der Gesamtanzahl Dateien berechnet.
Dieses Verfahren ist zwar das einfachste, aber es setzt voraus, daß sich die Prüfsummendatei im selben Verzeichnis
befindet, das auch den Startpunkt des Verzeichnisbaums bildet, in dem sich die zu überprüfenden Dateien befinden.
Dies ist meistens, wie auch bei der eComStation 1.2 Start-CD, jedoch nicht immer der Fall. Per definitionem handelt
es sich bei dem Dateinamen in der MD5-Listendatei nur um einen relativen Pfad, es werden also kein Laufwerksbuchstabe
und kein Wurzelverzeichnis (\
) angegeben. Dies ermöglicht vollständige Freiheit bei der Plazierung des
Satzes der zu prüfenden Dateien und der MD5-Datei. Stimmt der Startpunkt des Dateisatzes nicht mit der Position der
MD5-Datei überein, so muß seine Position angegeben werden.
Am besten läßt sich dies an einem Beispiel erläutern. Angenommen, es befände sich eine Kopie der eComStation-CD auf der Festplatte, etwa unter E:\images\ver12, aber die MD5-Listendatei wäre f:\ecs\md5\ver12.md5. Dann startet man zuerst SigmaMD5, ruft über File > Open oder die Schaltfläche Check den OS/2-Standarddialog zum Öffnen von Dateien auf und wählt dann die MD5-Datei aus.
Abb. 2: MD5-Dialog-Datei Öffnen
Nach erfolgreicher Auswahl einer Listendatei wird ein neuer Dialog angezeigt. In diesem Dialog wird das Startverzeichnis des Dateisatzes festgelegt.
Abb. 3: Auswahl des Startverzeichnisses [Größeres Bild]
Die Navigation erfolgt entweder durch Auswahl der angezeigten Verzeichnisse oder Betätigen einer der Schaltflächen. Im Beispiel würde man zuerst das Laufwerk auswählen und sich dann durch den Verzeichnisbaum bewegen, bis man E:\images\ver12 ausgewählt hat. Die Positionen der Dateien werden dann jeweils durch den in der MD5-Listendatei angegebenen relativen Pfad bestimmt, dem der im Dialog Select Start Directory festgelegte Laufwerksbuchstabe und Pfad vorangestellt wird. Oftmals wird SigmaMD5 nicht über eine Zuordnung, sondern direkt gestartet werden. Befindet sich die MD5-Datei im Startverzeichnis des Dateisatzes, reicht Drücken von Set to MD5 Dir aus, um sofort auf dasselbe Verzeichnis zu verweisen, in dem die MD5-Listendatei ausgewählt wurde. Nachdem der Dialog mit Okay verlassen wurde, wird die Listendatei eingelesen und die Prüfsummen werden überprüft.
Erstellung einer MD5-Datei
Um eine MD5-Listendatei zu erstellen, müssen erst das Startverzeichnis und die Dateien des Dateiensatzes angegeben werden. Nach Auswahl von Erstellen über das Dateimenü oder die Schaltfläche Create kann das Startverzeichnis in einem Dialog ähnlich Abbildung 3 ausgewählt werden. Anschließend wird der Dialog Create MD5 File angezeigt. Auf der ersten von zwei Seiten des Dialogs werden die gewünschten Dateien ausgewählt. Die Dateien werden in der Liste Files ausgewählt und in die Liste Selection einzeln oder in Gruppen übernommen. Die Auswahl erfolgt durch Hervorhebung der Dateien und anschließendes Drücken von Add, Doppelklicken oder Drücken der Taste [Enter]. Auf die gleiche Weise lassen sich vollständige Verzeichnisse mit Unterverzeichnissen und Dateien auswählen und in die Liste Selection kopieren. Da die rekursive Auswahl von Dateien sehr viel Zeit in Anspruch nehmen kann, wurde diese Funktion in einem eigenen Thread implementiert, wodurch zudem eine Funktion zum Abbrechen des Vorgangs eingebaut werden konnte. Während der Übertragung von Dateien in die Liste Selection wird die Schaltfläche Finish in Stop umgeändert.
Bei der Auswahl einzelner Dateien und Verzeichnisse kann es leicht vorkommen, daß eine Datei mehrmals ausgewählt wird. Um dies zu verhindern, wurde das Markierungsfeld Dup file inhibit hinzugefügt. Die Funktion wurde optional gehalten, denn die Überprüfung auf mehrfache Auswahl kann bei einer großen Anzahl Dateien sehr viel Rechenleistung benötigen. Da eventuell nicht immer ersichtlich ist, ob das Programm aktiv ist, wurde im oberen Bereich des Dialogs eine Aktivitätsanzeige in Form einer länger werdenden gepunkteten Linie hinzugefügt. Dies kann z.B. der Fall sein, wenn bei aktivierter Option Dup File Inhibit eine große Anzahl Dateien verarbeitet wird oder wenn bei der Dateiauswahl Filter aktiv sind.
Abb. 4: Erzeugen der Dateiauswahl [Großes Bild]
Über Filter kann die Auswahl der Dateien beeinflußt werden, wobei nach Datum und Dateiattributen gefiltert werden kann. Darüber hinaus können Einschluß- und Ausschlußlisten angelegt werden. Diese auf Seite zwei definierbaren Filter können einzeln ein- und ausgeschaltet werden. Zwischen Aufrufen von SigmaMD5 werden sie in einer INI-Datei gespeichert. Sind Filter vom letzten Aufruf aktiv, so wird auf Seite eins eine Warnung angezeigt.
Zur Anpassung der Daten und Nutzung eines Filters muß dieser zuerst aktiviert werden. Über das Markierungsfeld Inclusive Date wird die entsprechende Funktion aktiviert und der Cursor am Anfang des Eingabefeldes plaziert. OS/2 zeichnet für jede Datei drei Daten auf: das Datum der Erstellung, das Datum des letzten Zugriffs und das Datum des letzten Schreibzugriffs. In SigmaMD5 wird das Datum des letzten Schreibens verwendet.
Da ich einige frustrierende Erfahrungen mit Eingabefeldern hinter mir habe, habe ich versucht, die Nutzung so einfach wie möglich zu gestalten, indem bereits vorhandene Werte ersetzt werden und bei der Eingabe eine Plausibilitätsprüfung durchgeführt wird. Desweiteren wird der Cursor automatisch in das nächste Feld bewegt, ohne daß die Taste[Tab] oder die Maus zur Hilfe genommen werden muß. Wird ein Tag, Monat oder Jahr eingegeben, so wird keine Fehlermeldung angezeigt, bis entweder ein anderer Filter auswählt oder der Dialog geschlossen wird, es sei denn, es würde statt einer Zahl ein Buchstabe oder ein Symbol eingegeben. Wenn ein ungültiger Tag, Monat oder Jahr eingegeben wurde, wird der Wert im entsprechenden Feld rot hervorgehoben. Falls es sich um eine Fehlerkombination wie etwa den 31. September oder den 29. Februar in einem normalen Jahr handelt, werden alle potentiell fehlerhaften Felder orange dargestellt, da nicht eindeutig festgestellt werden kann, ob der Tag, der Monat oder das Jahr falsch ist. Das frühestmögliche Datum ist der 1. Januar 1980, da frühere Daten auf einem PC nicht dargestellt werden können. Das letzte Datum ist der 31. Dezember 2099 - für OS/2 ein gutes Alter, um in den Ruhestand einzutreten. Ist ein Einschlußdatum aktiv, können in der Dateiauswahl auf Seite eins nur solche Dateien ausgewählt werden, deren Datum des letzten Schreibzugriffs mit dem Filter übereinstimmt.
Die Einstellungen für Dateiattribute lauten Egal
, An
und Aus
. Die Standardsymbole für ein Markierungsfeld mit drei
Zuständen sind nicht eindeutig, weswegen ich nach einer anderen Lösung gesucht habe. Da ich keine Möglichkeit finden
konnte, die Darstellung eines Markierungsfeldes zu ändern, entschied ich mich, eine normale Schaltfläche von der
Größe eines Markierungsfeldes zu verwenden. Es werden leer für Egal
, + für An
und - für Aus
benutzt, da dies am
ehesten dem Befehl attribute entspricht und mir auch klarer erschien. Die meisten Programme zeigen nur Dateien ohne
die Attribute Versteckt
und System
an. Ich habe jedoch für alle Attribute die Voreinstellung Egal
gewählt, da Filter
meiner Meinung nach stets etwas entfernen und nicht hinzufügen.
Abb. 5: Dateifilter
Die Ein- und Ausschlußfilter dürften selbsterklärend sein. Die meisten Fehler entstehen durch fehlerhafte Eingaben, daher wird versucht zu prüfen, ob die Ausschlußfilter mit Einschlußfiltern zusammenfallen. Dies kann jedoch über das Markierungsfeld Filter Cross Check deaktiviert werden. Da ein Filter definitionsgemäß kein Dateiname sein kann, wurde die Funktion Exclude File by Name hinzugefügt, so daß sich Dateien wie swapper.dat leicht ausschließen lassen.
Nachdem die gewünschten Dateien ausgewählt wurden, kann der Dialog zum Erstellen durch Drücken von Finish (während der Dateiauswahl als Stop angezeigt) auf Seite eins geschlossen und mit der Erstellung der MD5-Prüfsummen begonnen werden. Dabei wird im Anzeigebereich das gleiche Format verwendet wie bei der Prüfung mit einer MD5-Listendatei, und es wird wieder ein eigener Thread gestartet. Nach Abschluß des Vorgangs kann die Liste über den Standarddialog File Save in einer Datei mit der Endung .md5 gesichert werden..
Menü und Optionen
Das Menü besteht aus den drei Teilen File, Options und Help. Unter File befinden sich die Einträge Open und Create, welche die gleiche Funktion wie die Schaltflächen Check und Create besitzen, sowie Save, Save and Quit und Exit. Im letzten Teil des Menüs befinden sich bis zu vier Pfade. Dabei handelt es sich um die letzten vier Dateien, die geöffnet oder gesichert wurden. Die Reihenfolge ist zeitlich absteigend. Mit Hilfe dieser Funktion lassen sich Dateien schnell noch einmal aufrufen (was sehr praktisch war, als ich das Startverzeichnis falsch ausgewählt hatte).
Abb. 6: Dateirückblick [Großes Bild]
Über die Menüeinträge Small, Medium und Large stehen drei verschiedene Schriftgrößen für entsprechende Bildschirmauflösungen zur Verfügung.
Das Menü Optionen bietet die Möglichkeit, ein Standard- oder benutzerdefiniertes Protokoll zu starten, zu stoppen und zu löschen. Das Protokoll zeichnet die Vorgänge und Ergebnisse bei der Erstellung oder Prüfung einer Listendatei auf. Aufgeführt werden Datum und Zeit des (Neu-)Beginns der Aufzeichnung, ob eine Datei erzeugt oder überprüft wurde, der Name der Listendatei sowie deren Inhalt. Bei einer Prüfung werden pro Datei das Prüfergebnis, ggf. Fehlermeldungen und Benutzeraktionen aufgezeichnet. Wenn die Protokollierung eingeschaltet ist, kann die Protokolldatei schnell sehr groß werden, daher wurde dem Protokollmenü eine Option für eine Warnung hinzugefügt.
Zur Verbesserung der Lesbarkeit der Prüfsummen wurde eine Trennzeichenfunktion hinzugefügt, die nach jedem vierten hexadezimalen Zeichen einen Bindestrich einfügt. Ist diese Funktion beim Sichern der Datei aktiv, ist das Format der Datei nicht mit der Ausgabe von GNU MD5Sum kompatibel!
Über Restore window size lassen sich die Standardwerte für Größe und Position des Fensters schnell wiederherstellen.
Sort on Error verschiebt alle bei der Prüfung oder Erstellung aufgetretenen Fehler an den Anfang der Liste, so daß diese einfacher gefunden werden können.
Die letzte Option dient der Registrierung. Das Programm funktioniert 31 Tage, danach ist eine Registrierung erforderlich. Sie ist kostenlos und es werden damit keine Verpflichtungen eingegangen. Ich habe dies nur hinzugefügt, um eine Übersicht über die Anzahl der Benutzer meines Programms zu erhalten und damit sehen zu können, ob sich eine Weiterentwicklung lohnt. Bis jetzt war der Rücklauf gering!
Verschiedenes
Ein Problem, auf das ich gestoßen bin, betraf lange Dateinamen und Pfade. Es kann leicht vorkommen, daß ein Dateiname oder Pfad zu lang ist, um ihn vollständig anzeigen zu können. Ich wählte ein Verkürzungsverfahren, bei dem im Hauptfenster links abgeschnitten wird, so daß möglichst viel vom Dateinamen sichtbar bleibt. Ein solches Abschneiden wird durch zwei Punkte am Anfang des Pfades angezeigt. Im Statusfenster werden Pfade und Dateinamen rechts abgeschnitten. Auf diese Weise stehen in den meisten Fällen genug Informationen zur Verfügung, um Dateinamen wieder zusammensetzen zu können.
Wird das Fenster auf weniger als die Standardbreite gesetzt, wird nur die MD5-Prüfsumme abgeschnitten, und zwar rechts. Darüber hinaus wird ihre Farbe von blau auf dunkelblau geändert und es werden am Ende drei Punkte hinzugefügt. Die Änderung der Größe des Fensters ist sowohl horizontal als auch vertikal nur bis zu gewissen Mindestwerten möglich, so daß stets ein Minimum an Informationen sichtbar bleibt.
Mir fiel auf, daß Meldungen und Dialoge je nach der Position des Hauptfensters teilweise über den Bildschirmrand hinausgingen. Teilweise konnte dies dazu führen, daß Fenster aufgrund fehlender Erreichbarkeit der entsprechenden Schaltfläche nicht geschlossen werden konnten. Es werden nun sämtliche Unterfenster und Meldungen überprüft und zentriert, so daß sie bei jeder Auflösung möglichst weit sichtbar bleiben.
Sie fragen sich vielleicht, warum es eine DLL für große Dateien gibt. Wenn der Code Teil der Programmdatei ist und das OS keine großen Dateien unterstützt - wie es bei Warp 4 bis FixPak 12 der Fall ist -, so kommt es beim Laden zu einem Systemfehler und die Ausführung wird abgebrochen. Nun wird zuerst geprüft, ob die Version des Betriebssystems große Dateien unterstützt, und nur im positiven Falle wird die DLL geladen.
Nachwort
Ich möchte Martin Vieregg für sein Programm Hypermake, das ich bei der Erstellung der Hilfedatei für SigmaMD5 eingesetzt habe, meinen Dank aussprechen.
Wie schon in der Hilfedatei gesagt, möchte ich Sie bitten, es mich wissen zu lassen, wenn Ihnen mein Programm gefällt. Denn wie andere Entwickler brauche auch ich etwas Ermunterung. Wenn Sie einen Fehler finden oder einen Einfall zur Verbesserung haben, teilen Sie es mir bitte mit.