Rubrik: System/Windows · Sonstiges | VB-Versionen: VB4, VB5, VB6 | 15.09.01 |
Umgebungsvariablen auslesen (Environ...) Sie glauben gar nicht, welche Informationen sich alles mit der Environ()-Funktion ermitteln lassen... | ||
Autor: Dieter Otter | Bewertung: | Views: 28.463 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Das Betriebssystem verfügt über eine Tabelle, in der bestimmte Werte der Systemumgebung gespeichert sind - man spricht hier meist von Umgebungsvariablen. Einzelne Werte lassen sich in Visual Basic über die Environ-Funktion "abrufen".
' Ermitteln des Windows-Verzeichnisses MsgBox "WinDir = " & Environ$("windir")
Ich wette, dass viele unter Ihnen die Environ-Funktion noch gar nicht gekannt haben - und wenn doch, dann meist nur in Verbindung mit dem obigen Code.
Sie glauben aber gar nicht, welche Informationen sich so alles mit der Environ()-Funktion ermitteln lassen!
Das nachfolgende Beispiel zeigt, wie sich ALLE in der Betriebssystem-Ungebungstabelle gespeicherten Informationen abrufen lassen. Plazieren Sie hierzu auf eine Form ein ListView-Control (ListView1) und darunter oder daneben einen CommandButton (Command1). Öffnen Sie den Eigenschaften-Dialog des ListView-Controls, stellen die Ansicht auf 3 - Details und erstellen zwei Spalten: Schlüssel (Key) und Wert. Fügen Sie dann noch nachfolgenden Code in das Click-Ereignis von Command1 ein:
' Umgebungsvariablen auflisten Private Sub Command1_Click() Dim iIndex As Integer Dim sResult As String Dim sKey As String Dim sValue As String Dim iPos As Integer Dim itemX As ListItem With ListView1 ' ListView-Inhalt löschen .ListItems.Clear ' Environ() durchlaufen ' Beginnen mit 1 iIndex = 1 Do ' Umgebungsvariable auslesen sResult = Environ(iIndex) ' Wird ein Leerstring zurückgegeben, so ist das ' Ende der Liste erreicht If sResult <> "" Then ' = suchen iPos = InStr(sResult, "=") sKey = Left$(sResult, iPos - 1) sValue = Mid$(sResult, iPos + 1) ' dem ListView hinzufügen Set itemX = .ListItems.Add(, sKey, sKey) itemX.SubItems(1) = sValue End If ' Index um 1 erhöhen iIndex = iIndex + 1 Loop Until sResult = "" End With End Sub
Was passiert?
Das ListView wird mit allen in der System-Umgebungstabelle enthaltenen Informationen gefüllt. In der erste Spalte wird der Schlüssel (Key) angezeigt, die zweite Spalte enthält dementsprechend den dazugehörigen Wert.
Erstaunt?
Schauen Sie sich die Liste mal genau an. Hier sind Informationen enthalten, die Sie sonst nur mit Hilfe des Windows-API ermitteln könnten.
Programmieren kann so einfach sein