〜 ウィンドウ 〜
テンポラリディレクトリパスを取得 (要KERNEL32.DLL)

インストーラーを使う場合や、その他アプリケーションが一時的にファイルを作成する場合、
予め決められたテンポラリディレクトリにファイルを格納することがあります。
今回はこの一時作業フォルダであるテンポラリディレクトリのパスをAPI関数GetTempPathで取得します。
尚、下記サンプルスクリプトを試していただければわかるかと思いますが、
「C:\DOCUME~1\hspbc\LOCALS~1\Temp\」のように
テンポラリフォルダのパスがMS−DOS時代の8.3形式で取得されることと思います。
存在しないフォルダパスが取得されたとは思わないでください。
	

gettmpdir
[パラメータなし]テンポラリディレクトリのパスを取得するだけのため、パラメータは必要ない。
尚、取得したパスはrefstrに返る。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
	ll_libload kernel, "kernel32.dll"
	ll_getproc GetTempPath, "GetTempPathA", kernel

#module
#deffunc gettmpdir
	mref rstr, 65
	prm = 256
	ll_getptr rstr : ll_ret prm.1
	ll_callfunc prm, 2, GetTempPath@
	return
#global

	gettmpdir
	mes "テンポラリフォルダのパスは「" + refstr + "」です"
	stop

パス = gettmpdir()
パステンポラリディレクトリパスの受取先を指定する。
[パラメータなし]テンポラリディレクトリのパスを取得するだけのため、パラメータは必要ない。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#uselib "kernel32.dll"
#func  global GetTempPath "GetTempPathA" int, var

#module
#defcfunc gettmpdir local s
	sdim s, 256
	GetTempPath 256, s
	return s
#global

mes "テンポラリフォルダのパスは「" + gettmpdir() + "」です"