无磁盘错误c0000013 76b6b7c

时间:2013-09-28 20:45:27

标签: windows delphi pascal

我正在Delphi写一个应用程序。它是一个文件浏览器,可以复制,删除等学校项目。当应用程序检测到可移动设备时,我正在尝试将文件复制到其中一个。 我的参数c0000013出现76b6b7c 4 76b6b7c 76b6b7c错误。

我读到将值ErrorMode更改为2会修复它。是的它修复了但我无法直接从Delphi app更改此变量。我知道一个usb是usb ghost,但我不知道如何隐藏这个usb或跳过它。由于这个错误我甚至无法检查。

如果需要,可以从应用程序修复它吗?

1 个答案:

答案 0 :(得分:0)

错误c0000013表示您正在访问的位置没有(可读)媒体 请参阅:http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382%28v=vs.85%29.aspx

因此,检查错误是完全可以的,如果没有媒体则继续前进。

您可以获取所有USB设备的列表(请参阅:Delphi - How to get list of USB removable hard drives and memory sticks?

procedure GetUsbDrives(List: TStrings);
var
  DriveBits: set of 0..25;
  I: Integer;
  Drive: AnsiChar;
begin
  List.BeginUpdate;
  try
    Cardinal(DriveBits) := GetLogicalDrives;

    for I := 0 to 25 do
      if I in DriveBits then
      begin
        Drive := Chr(Ord('a') + I);
        if GetBusType(Drive) = BusTypeUsb then
          List.Add(Drive);
      end;
  finally
    List.EndUpdate;
  end;
end;

如果您随后访问驱动器并收到错误,只需使用try-except检测是否有任何问题,请参阅:Delphi - how to get a list of all files of directory

function IsDevicePresent(DriveLetterOrPath: string): boolean;
const 
  success = 0;
  Win_DeviceIsPresent = true;
  Fail_DeviceNotPresent = false;
var 
  SearchRec: TSearchRec;
  Drive: string;
begin
  Drive:= ExtractFileDrive(DriveLetterOrPath);
  try
    Result:= (FindFirst(Drive, faAnyFile, SearchRec) = success);
  except 
    Result:= Fail_DeviceNotPresent;
  end; {try}
end;