0

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

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

如果需要,还有其他想法可以从应用程序中修复它吗?

4

1 回答 1

0

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

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

您可以像这样获取所有 USB 设备的列表(请参阅:Delphi - 如何获取 USB 可移动硬盘和记忆棒的列表?

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 - 如何获取目录中所有文件的列表

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;
于 2013-09-28T23:57:11.103 回答