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 (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.