System-Funktionen

In der TDBSYS.DLL sind folgende Funktionen enthalten.

GetWinDir()

GetWinDir() ist eine Funktion, die in eine übergebene Variablen-Referenz den vollständigen Windows-Pfad (z.B. C:\WINDOWS\) schreibt.

GetWinDir(var cDir : string)

 

GetSysDir(), GetTmpDir() und GetCurrentDir()

GetSysDir(), GetTmpDir() und GetCurrentDir() funktionieren analog zu GetWinDir(), wobei GetSysDir() jedoch den Systempfad (z.B. C:\WINDOWS\SYSTEM\), GetTmpDir() das temporäre Verzeichnis (z.B. C:\TEMP\) und GetCurrentDir() das aktuelle Verzeichnis (z.B. C:\TOOLBOX3\DOCU\) zurückliefern.

 

ExactTime()

ExactTime ist vergleichbar mit der Easy-Funktion $Now. Sie liefert Ihnen die aktuelle Windowssystemzeit zurück. Allerdings nicht nur im Stunden/Minuten-Format, sondern auf 100stel Sekunden genau. Das Ergebnis ist vom Typ Integer und enthält die Zeit in 100stel Sekunden. Zur Umrechnung in ein lesbares Format sehen Sie sich bitte das kleine Beispiel im Toolbox-Projekt an.

ExactTime : integer;

Hinweis:

Es empfiehlt sich, vor dem ersten Aufruf von ExactTime die DLL mit FastLoad in den Speicher zu laden, da der erste Zugriff immer mit einer leichten Verzögerung verbunden ist.

SysReboot()

Mit der Funktion SysReboot() ist es möglich, den Computer direkt aus einer VDP-Anwendung heraus herunterzufahren oder neu zu starten. SysReboot() erwartet zwei Integer-Werte von Ihnen, wobei iMode die Art des Neustarts enthält und iForce angibt, ob der Rechner direkt (Keine Nachfrage beim Schließen einer Anwendung, ob evtl. geöffnete Dokumente zuvor gesichert werden sollen.) oder "smart" (mit Sicherhaitsabfragen) heruntergefahren werden soll.

iMode darf folgende Werte enthalten:

0 - Neuanmeldung im Netzwerk (entspricht bei Windows im Start-Menü der Option 'Benutzer XXX abmelden')

1 - Warmstart des Computers

2 - Herunterfahren des Computers

3 - Ausschalten des Computers (entsprechend neue ATX-Systeme)

Ist iForce ungleich 0, dann wird der Computer direkt (ohne Sicherheitsabfragen) heruntergefahren.

 

SysReboot(iMode : integer; iForce : integer)

 

FindApp()

Um die Funktionsweise von FindApp() verstehen zu können, sind gewisse Grundkenntnisse im Umgang mit der Windows-Systemregistrierung unabkömmlich. FindApp() durchsucht die Registry nach einer von Ihnen bestimmten Dateiendung (z.B. .tdb) und ermittelt den, ebenfalls durch Sie bestimmten, Kommandozeilenparameter für eine beliebige Aktion (z.B. Öffnen oder Drucken).

Am Besten sehen Sie sich den Aufbau der Registry auf Ihrem System an:

Gehen Sie ins Start-Menü, wählen Sie Ausführen und geben Sie in das Fenster regedit ein. Der Registry-Editor von Windows wird nun geöffnet.

Ihr Arbeitsplatz wird in sechs verschiedene Root-Keys unterteilt. Bitte öffnen Sie HKEY_CLASSES_ROOT.

Sie sehen nun eine Liste mit allen gängigen Dateinamenerweiterungen. Wählen Sie doch einfach mal die .doc-Erweiterung an und lesen Sie den (default) Eintrag auf der rechten Fensterseite. Hier steht in etwa "Word.Document.6". Gehen Sie jetzt auf Bearbeiten/Suchen. Deaktivieren Sie die Ja/Nein-Felder Werte und Daten und geben Sie als Suchbegriff "Word.Document.6" ein. Klicken Sie auf "Weitersuchen" und warten Sie bis die Suche beendet ist. Der blaue Markierungsstreifen sollte jetzt auf dem Schlüssel Word.Document.6 stehen. Öffnen Sie diesen Ordner und den darin befindlichen Ordner mit Namen shell. Dieser enthält weitere Ordner für die, dem Datentyp zugeordneten, Aktionen. Jede dieser Aktionen enthält einen Eintrag namens Command. Genau diesen Kommandoeintrag versucht FindApp zu ermitteln und zurückzuliefern.

Parameter:

FindApp(var cCommand : string; cAction : string) : integer

cCommand muß eine String-Variable sein. Beim Aufruf von FindApp übergeben Sie in dieser Variablen die gesuchte Dateinamenerweiterung (mit vorangestelltem . [Punkt]). Nach Ausführung der Funktion enthält cCommand den gesuchten Kommandoaufruf für die in cAction übergebene Aktion.

cAction: Beachten Sie immer, daß jeder Dateityp unterschiedliche Aktionen anbietet. Die Endung .WAV z.B. hat ein Kommando namens Play. Eine .HTML-Datei können Sie jedoch nicht abspielen, sondern höchstens mit einem Browser betrachten. Der wohl schnellste Weg herauszufinden, welche Aktionen mit welchem Dateitypen möglich sind, ist es im Windows-Explorer eine beliebige Datei zu markieren und die rechte Maustaste zu drücken. Es erscheint ein kontext(Dateityp)sensitives Menü, daß alle möglichen Aktionen enthält.

Das Ergebnis von FindApp() ist 0 bei Erfolg, -1 wenn der gesuchte Dateityp nicht gefunden wurde und -2 wenn die Aktion für den gefundenen Dateityp nicht zulässig ist.

Sehen Sie sich auch das Beispiel Demo_FindApp im Toolbox-Projekt an.

ExtDateStr()

Mit ExtDateStr() steht Ihnen eine Funktion zur Verfügung, mit der Sie beinahe jede beliebige Darstellung des Datums erreichen können.

ExtDateStr(cDatum : string, var cNewDatum : string; i_df : integer)

cDatum ist ein "normales" (TT.MM.JJJJ) VDP-Datum, das Sie z.B. mit DateStr(Today) erhalten.cNewDatum ist eine Referenz auf eine String-Variable, in die ExtDateStr() das erweiterte Datum hineinschreibt. Mit i_df bestimmen Sie, wie das Ergebnis aussehen soll. In der TDBTOOLS.MOD sind untenstehende, mit "df_" beginnende Konstanten definiert.

Mögliche Datumsformate:

VDP : 12.01.1999

Dienstag, der 12. Jan. 1999 df_TTTT_TTMMMJJJJ (= 1)
Januar 1999 df_MMMMJJJJ (= 2)
Jan. 1999 df_MMMJJJJ (= 3)
Di. 12.01.1999 df_TTT_TTMMJJJJ (= 4)
12. Jan. 1999 df_TTMMMJJJJ (= 5)
12. Januar 1999 df_TTMMMMJJJJ (= 6)
01/12/1999 df_MMTTJJJJ (= 7)
12-01-1999 df_TTMMJJJJ (= 8)
01-12-1999 df_MMTTJJJJ (= 9)