HERBERS Excel-Forum - die Beispiele

Thema: Umgebungsvariable aus der autoexec.bat auslesen

Home

Gruppe

API

Problem

Wie kann ich aus der Autoxec.bat eine Umgebungsvariable auslesen?

Lösung
Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.
StandardModule: basMain

Declare Function GetEnvironmentVariableA Lib "Kernel32" _
    (ByVal lpName As String, ByVal lpBuffer As String, _
    ByVal nsize As Long) As Long
Declare Function GetDOSEnvironment Lib "Kernel" () As Long
Declare Function lstrcpy Lib "Kernel" Alias "lStrCpy" _
    (ByVal lpString1 As Any, ByVal lpString2 As Any) As Long

Sub Test()
    MsgBox GetDOSEnvironmentVariable("temp")
End Sub

Function GetDOSEnvironmentVariable(sEnvVar As String) As String

    Dim lpszOrigEnv As Long
    Dim lpszEnv As Long
    Dim szDOSEnv As String

    If b32Bit() Then
    szDOSEnv = Space(4096)
        lpszEnv = GetEnvironmentVariableA(sEnvVar, szDOSEnv, 4096)

        GetDOSEnvironmentVariable = Left(szDOSEnv, lpszEnv)
        Else
        lpszOrigEnv = GetDOSEnvironment()
        szDOSEnv = Space$(4096)
        lpszEnv = lstrcpy(szDOSEnv, lpszOrigEnv)
        szDOSEnv = Trim(szDOSEnv)
        szDOSEnv = Left(szDOSEnv, Len(szDOSEnv) - 1)

        Do While szDOSEnv <> ""
            If Left(szDOSEnv, Len(sEnvVar)) = sEnvVar Then
                GetDOSEnvironmentVariable = Mid(szDOSEnv, _
                    Len(sEnvVar) + 2, Len(szDOSEnv))
                Exit Function
            End If

            lpszOrigEnv = lpszOrigEnv + Len(szDOSEnv) + 1
            szDOSEnv = Space$(4096)
            lpszEnv = lstrcpy(szDOSEnv, lpszOrigEnv)
            szDOSEnv = Trim(szDOSEnv)
            szDOSEnv = Left(szDOSEnv, Len(szDOSEnv) - 1)
        Loop
    End If
End Function

Function b32Bit() As Boolean
    Select Case Left(Application.Version, 1)
        Case 5
            b32Bit = False
        Case 7, 8, 9
            b32Bit = True
    End Select
End Function

Beiträge aus dem Excel-Forum zu den Themen API und System

Excel to Word Kapitel VBA Anfangskapital berechnen
Gestapelte Säulen-Diagramm: Ich kapier's nicht Googel Maps API in Excel VBA einfügen
Private Const CheckCell_1 = "System!AI9" Problem mit dem Rang-System
Berechnung vom Endkapital Systemp-Variable benötigt
Netzwerkpfad per FileSystemObject wechseln GetSystemMetrics
API? - xl-Parameter aus Long-Wert bestimmen Berechnung Kapitalanlage
System Variablen mit Excel auslesen Telefonnummer auslesen per TAPI
Schichtsystem im Kalender Läuft RSAPI.DLL mit WIN2000 und XP?
Auslesen Systemdaten, Zellschutz und Counter Systemauslastung mitloggen
JAVA API mit VBA verwenden Kurzzeitig steuerung des Systems übernehmen
Daten aus einer Tabelle auslesen-Koordinatensystem Systemunabhängige Email an mehrere Empfänger
fs - system (filesearch) Abfrage, ob Outlook oder Lotus Notes Mailsystem
Schichtsystem Systemvariable - Benutzername auslesen
PageSetup - absolute Systemauslastung Windows Systeminfo
Papierformat speichern FileSystemObject Frage
Kassensystem mit excel Excel -mangelnde Systemresourcen
Kleines Lager/Kassensystem verschiedene Papierquele beim Drucken
Entnahme mit Kapitalverzehr Berechnung Endkapital / Zinsen
Mehrfachberechnung linearesGleichungssystem-Solver Druck auf Papier und PDF mit und ohne Logo
Frage zur RSAPI.DLL Kombination Seitenumbruch Papierformat Anpassen
Koordinatensystem mit 4 Quadranten Kein Download wenn Betriebssystem Vista ist
Hilfe bei der Fehlersuche (API) Frage zu XKAPITALWERT
API-Zugriff Endkapital? bei unterschiedlichen Zahlungen
Handelssystem API für Tastaturpuffer auslesen
API für Tastaturpuffer auslesen Koordinatensystem definieren