PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
4970 | 99/02/04 10:35:55 | RE(3):PB5.0.02: フロッピードライブの状態をチェックする方法 By Kassy |
4886 | 99/02/01 14:37:11 | RE(2):PB5.0.02: フロッピードライブの状態をチェックする方法 By にしやん |
4818 | 99/01/28 16:16:46 | RE(1):PB5.0.02: フロッピードライブの状態をチェックする方法 By kin |
4802 | 99/01/27 21:24:16 | PB5.0.02: フロッピードライブの状態をチェックする方法 By Kassy |
カテゴリ:PowerBuilderの開発環境
日付:1999年02月01日 14:37 発信者:にしやん
題名:RE(2):PB5.0.02: フロッピードライブの状態をチェックする方法
Kassy さん、こんにちは。
APIを使ってFDDにディスクが入っているかチェックできます。
外部関数
FUNCTION UnsignedLong GetDriveType(String lpRootPathName) &
LIBRARY \"KERNEL32.DLL\" ALIAS FOR \"GetDriveTypeA\"
FUNCTION UnsignedLong GetFileAttributes(String lpFileName) &
LIBRARY \"KERNEL32.DLL\" ALIAS FOR \"GetFileAttributesA\"
FUNCTION UnsignedLong SetErrorMode(UnsignedLong uMode) &
LIBRARY \"KERNEL32.DLL\"
FUNCTION UnsignedLong GetLastError() &
LIBRARY \"KERNEL32.DLL\"
//定数宣言
//GetDriveType の戻り値
Constant UnsignedLong DRIVE_REMOVABLE = 2
//GetLastError の戻り値
Constant UnsignedLong ERROR_NOT_READY = 21
Constant UnsignedLong ERROR_GEN_FAILURE = 31
//SetErrorMode の引数
Constant UnsignedLong SEM_FAILCRITICALERRORS = 1
//変数宣言
String strRootPathName
UnsignedLong lngDriveType
UnsignedLong lngFileAttrivutes
UnsignedLong lngWin32apiResultCode
//目的のドライブのルートディレクトリを指定
strRootPathName = \"A:\\\"
//ドライブの種類を取得
lngDriveType = GetDriveType(strRootPathName)
//リムーバブルメディアに限定
IF lngDriveType = DRIVE_REMOVABLE THEN
//システムエラーを抑制
lngWin32apiResultCode = SetErrorMode(SEM_FAILCRITICALERRORS)
//ルートディレクトリのファイル属性を取得
lngFileAttrivutes = GetFileAttributes(strRootPathName)
IF lngFileAttrivutes = 4294967295 THEN
CHOOSE CASE GetLastError()
CASE ERROR_NOT_READY
//ディスクが入っていない
CASE ERROR_GEN_FAILURE
//フォーマットされていない
CASE ELSE
//状態を取得できない
END CHOOSE
ELSE
//ディスクが入っている
END IF
//システムエラーを既定値に戻す
SetErrorMode(lngWin32apiResultCode)
END IF
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows NT 4.0
DBMS Microsoft SQL Server Client 6.5
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Microsoft SQL Server 6.5
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.