〜 ファイル 〜
ドライブが接続されているかを検知

取り外し可能なドライブに現在ディスクが接続状態にあるかを調べるサンプルです。
フロッピーディスクドライブの場合には、例えばAドライブがFDDでフロッピーを挿入してない時、
「ドライブにディスクがありません。 ディスクをドライブ A: に挿入してください。」
とWindowsのメッセージダイアログが表示されてしまいますが、確認はできるようになっています。
このダイアログを表示しないようにするには、コチラのサンプルと併用してください。
	

getdrivestate ドライブ番号
ドライブ番号Aドライブを1、Bドライブを2…Zドライブを26としたドライブ番号を指定する。
尚、接続できる(=1)できない(=0)の結果はstatに代入する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#module
#deffunc getdrivestate int
	mref root, 0
	mref stt, 64
	s = "?:\\" : poke s, , root + 64
	exist s + "nul"
	stt = (strsize = 0)
	return
#global

	getdrivestate 5 // ドライブE
	if stat {
		mes "Eドライブは現在開くことができます。"
	} else {
		mes "Eドライブは現在開くことができません。"
	}
	stop

接続可否 = getdrivestate(ドライブ番号)
接続可否接続できる(=1)できない(=0)状態の受取先を指定する。
ドライブ番号Aドライブを1、Bドライブを2…Zドライブを26としたドライブ番号を指定する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#module
#defcfunc getdrivestate int root
	s = "?:\\" : poke s, , root + 64
	exist s + "nul"
	return strsize = 0
#global

	if getdrivestate(5) {
		mes "Eドライブは現在開くことができます。"
	} else {
		mes "Eドライブは現在開くことができません。"
	}
	stop