Tipp 4.10 - Systemvariable TEMP ändern

Wie kann ich die Systemvariable TEMP verändern?

Mit dieser Funktion können Sie die Systemvariable TEMP verändern. Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.

Api-AufrufeVerwendete Win32-Api-Aufrufe und Typen: SetEnvironmentVariable, GetEnvironmentVariable

Beispiel:

Option Explicit
 
Private Declare Function SetEnvironmentVariable _
    Lib "kernel32" Alias _
    "SetEnvironmentVariableA" _
    (ByVal lpName As String, _
    ByVal lpValue As String) As Long
 
Private Declare Function GetEnvironmentVariable _
    Lib "kernel32" Alias _
    "GetEnvironmentVariableA" _
    (ByVal lpName As String, _
    ByVal lpBuffer As String, _
    ByVal nSize As Long) As Long
 
Dim m_SavePath As String  ' Form oder App.-globale Variable
 
Sub ChanceTempPath()
  '// -----------------------------------------------------
  '// Funktion: | Beispiel um die Systemvariable TEMP
  '//           | zu ändern und wiederherzustellen.
  '// -----------------------------------------------------
  '// Autor:    | Stefan Kulpa
  '//           | EDV Innovation & Consulting - Dormagen
  '// -----------------------------------------------------
 
  Dim sBuffer As String
  Dim lResult As String
  Dim lLength As Long
  '// Pfad zum Temp-Verzeichnis ermitteln
  sBuffer = String(256, 0)
  lLength = GetEnvironmentVariable("TEMP", _
      sBuffer, Len(sBuffer))
  If lLength > 0 Then
    m_SavePath = Left$(sBuffer, InStr(sBuffer, _
        vbNullChar) - 1)
  End If
  MsgBox "Alter Temp-Pfad: " & m_SavePath
  '// Pfad zum Temp-Verzeichnis neu setzen
  lResult = SetEnvironmentVariable("TEMP", "E:\Temp")
  '// Testen
  sBuffer = String(256, 0)
  lLength = GetEnvironmentVariable("TEMP", _
      sBuffer, Len(sBuffer))
  If lLength > 0 Then
    MsgBox "Neuer Temp-Pfad: " & _
        Left$(sBuffer, InStr(sBuffer, vbNullChar) - 1)
  End If
  '// Und wieder zurücksetzen
  lResult = SetEnvironmentVariable("TEMP", m_SavePath)
 
End Sub