Windowsディレクトリを取得する
                                                        玄関へお回り下さい。
Windowsディレクトリのパス名を取得する     (008)
    Option Explicit   'SampleNo=008 WindowsXP VB6.0(SP5) 2002.04.17

' Windowsディレクトリのパス名を取得する(P925)
Private Declare Function GetWindowsDirectory Lib "kernel32" _
  Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _
  ByVal nSize As Long) As Long
Private Const MAX_PATH As Long = 260

'Windowsのシステムディレクトリのパス名を取得する(P918)
Private Declare Function GetSystemDirectory Lib "kernel32" _
  Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, _
  ByVal nSize As Long) As Long


Private Sub Command1_Click()
  Dim strWinDirBuf As String * MAX_PATH
  Dim lngWinDirLen As Long
  'Windows ディレクトリのパス名を取得
  lngWinDirLen = GetWindowsDirectory(strWinDirBuf, Len(strWinDirBuf))
  'Windows ディレクトリのパス名を表示
  Label1.Caption = Left$(strWinDirBuf, InStr(strWinDirBuf, vbNullChar) - 1)
  'Windows ディレクトリのパス名の長さを表示
  Label2.Caption = lngWinDirLen
End Sub


Windows\Systemディレクトリのパス名を取得する

Private Sub Command2_Click()
  Dim strSysDirBuf As String * MAX_PATH
  Dim lngSysDirLen As Long
  'System ディレクトリのパス名を取得
  lngSysDirLen = GetSystemDirectory(strSysDirBuf, Len(strSysDirBuf))
  'System ディレクトリのパス名を表示
  Label1.Caption = Left$(strSysDirBuf, InStr(strSysDirBuf, vbNullChar) - 1)
  'System ディレクトリのパス名の長さを表示
  Label2.Caption = lngSysDirLen
End Sub

Environ関数で環境変数の値を取得する
    Windowsディレクトリのパス名だけならVBだけの機能で取得できる

Private Sub Command3_Click()
  'VBの機能でWindows ディレクトリのパス名を取得
  Label1.Caption = Environ$("WINDIR")
  'Windows ディレクトリのパス名の長さを表示
  Label2.Caption = Len(Environ$("WINDIR"))
End Sub

その他の環境変数の値

Private Sub Command4_Click()
  Dim i As Long
  For i = 1 To 40
    Debug.Print i, Environ(i)
  Next i
End Sub

結果
   1   ALLUSER=2
   2   ALLUSERSPROFILE=C:\Documents and Settings\All Users
   3   APPDATA=C:\Documents and Settings\ypcs_NO1\Application Data
   4   CLIENTNAME=Console
   5   CommonProgramFiles=C:\Program Files\Common Files
   6   COMPUTERNAME=ypcs_NO4
   7   ComSpec=C:\WINDOWS\system32\cmd.exe
   8   HOMEDRIVE=C:
   9   HOMEPATH=\Documents and Settings\ypcs_NO1
 10   LOGONSERVER=\\ypcs_NO4
 11   NUMBER_OF_PROCESSORS=1
 12   OS=Windows_NT
 13   Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
 14   PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
 15   PROCESSOR_ARCHITECTURE=x86
 16   PROCESSOR_IDENTIFIER=x86 Family 6 Model 7 Stepping 0, AuthenticAMD
 17   PROCESSOR_LEVEL=6
 18   PROCESSOR_REVISION=0700
 19   ProgramFiles=C:\Program Files
 20   SESSIONNAME=Console
 21   SystemDrive=C:
 22   SystemRoot=C:\WINDOWS
 23   TEMP=C:\DOCUME~1\ypcs_NO1\LOCALS~1\Temp
 24   TMP=C:\DOCUME~1\ypcs_NO1\LOCALS~1\Temp
 25   USERDOMAIN=ypcs_NO4
 26   USERNAME=ypcs_NO1
 27   USERPROFILE=C:\Documents and Settings\ypcs_NO1
 28   windir=C:\WINDOWS


   下記のようにも使用できます。
      Debug.Print Environ("TMP")
      C:\DOCUME~1\ypcs_NO1\LOCALS~1\Temp




2003/04/27