即効テクニック

Windows環境・オブジェクト

Windowsパスの取得 (API)

(Access 97)
●概要●
Windowsパスは機種とOSの種類によって、C:\Windows, C:\WinNT, A:\Windows .. のように変わりますが、Win32APIのGetWindowsDirectory関数を利用して、ドライブレターを含めたWindowsパスを取得することができます。
例えば、新規標準モジュールに以下のサンプルコードを記述し、FD_DriveLetter()を実行すると、FDDのドライブレターを(A または C と仮定して)表示します。

●サンプルコード●
' Windowsパス取得関連関数(API)の定義
Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" _
    (ByVal lpBuffer As String, ByVal nSize As Long) As Long

' Windowsパス取得関数
Public Function WindowsDirectory() As String
    Dim WinPath As String
    
    ' GetWindowsDirectory APIを利用して、Windowsフォルダのパスを返す
    WinPath = String(145, Chr(0))
    WindowsDirectory = Left(WinPath, GetWindowsDirectory(WinPath, Len(WinPath))) _
                       End Function

' FDDのドライブレターを表示
Public Sub FD_DriveLetter()
    ' Windowsがインストールされたドライブをチェック
    If Left$(WindowsDirectory, 1) = "A" Then
        ' Aドライブなら、C:がFDDと見なす(NEC PC-98)
        MsgBox "FDDはCドライブです"
    Else
        ' それ以外は、C:がFDDと見なす(DOS/V)
        MsgBox "FDDはAドライブです"
    End If
End Sub