我在程序里用到判断软驱里面是否有软盘的问题,在中文操作系统下没有问题,在英文操作系统下,
用DISKSIZE(1) 或者是用FOLDEXISTS('A:\')等方法测试,假如软驱中有软盘,OK,关键是软驱中没有软盘的时候,会跳出一个对话框,提示软驱里面没有软盘,问你是ABORT,FALSE,CONTINUE,如何把这个对话框去掉,又能判断软驱里有没有软盘,注:用TYR EXCEPT END 也捉不到这个错误,应该是英文操作系统的问题我想

解决方案 »

  1.   

    我就是EN的Win2003
    用GetVolumeInformation判断就一定没问题!http://lysoft.7u7.net
      

  2.   

    用这个函数吧,刚刚在XP SP2 English下测试过:function DiskInDrive(Drive: Char): Boolean;
    var
      ErrorMode: word;
    begin
      if Drive in ['a'..'z'] then Dec(Drive, $20);
      if not (Drive in ['A'..'Z']) then
      raise EConvertError.Create('Not a valid drive ID');
        ErrorMode := SetErrorMode(SEM_FailCriticalErrors);
      try
        if DiskSize(Ord(Drive) - $40) = -1 then
          Result := False
        else
          Result := True;
      finally
        SetErrorMode(ErrorMode);
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      if DiskInDrive('A') then
         ShowMessage('Yes');
    end;
      

  3.   

    三星的 ly_liuyang(Liu Yang) ( ) 信誉:215 是对的,一星的方法和我的DISKSIZE(1)不是一样的吗,多谢楼上的两位了,解决问题了,用getvolumninformation,用DISKSIZE可能在XP 下没问题吧,我用WIN 2000 ENS 试的,