Shell-01 Windowsフォルダ・Systemフォルダ・Tempフォルダのパスを取得する

Q Windowsフォルダ・Systemフォルダ・Tempフォルダの位置を知りたいのですが、どうすればいいですか。
A GetWindowsDirectory、GetSystemDirectory、GetTempPath関数を使います。
どう使う?
Windowsフォルダのパスを取得
Dim Buf As String

Buf=ZeroString(MAX_PATH)
GetWindowsDirectory(Buf,MAX_PATH)
Buf=Left$(Buf,InStr(1,Buf,Chr$(0))-1)
Systemフォルダのパスを取得
Dim Buf As String

Buf=ZeroString(MAX_PATH)
GetSystemDirectory(Buf,MAX_PATH)
Buf=Left$(Buf,InStr(1,Buf,Chr$(0))-1)
Tempフォルダのパスを取得
Dim Buf As String

Buf=ZeroString(MAX_PATH)
GetTempPath(MAX_PATH,Buf)
Buf=Left$(Buf,InStr(1,Buf,Chr$(0))-1)
GetTempPath関数の引数が、他の2つと逆になっていることに注意して下さい。

3つの関数のポイントは、それぞれの3行目、「Buf=ZeroString(MAX_PATH)」の部分です。
この関数は、Chr$(0)を指定数つなげて返却します。
3行目のこの関数でString型変数にChr$(0)を埋めておかないと、次の各関数での取得処理が成功しません。
イメージとしては、lstrcpy関数を内部で呼び出している感じです。

※3つとも、ここではBufに返るようになっています。

メニューに戻る