我用Delphi编写了一个读取USB里数据的软件。
程序自动扫描计算机所有USB设备,很简单,代码如下:procedure GetUsbDrives(List: TStringList);
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
begin
List.Add(Drive);
end;
end;
finally
List.EndUpdate;
end;
end;客户使用Win7, 使用时弹出错误 :
这个错误不是我在代码中定义的,是windows产生的。Google了一下,
发现回答感觉都牛头不对马嘴。大家有人碰到这问题吗?如何解决?谢谢
程序自动扫描计算机所有USB设备,很简单,代码如下:procedure GetUsbDrives(List: TStringList);
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
begin
List.Add(Drive);
end;
end;
finally
List.EndUpdate;
end;
end;客户使用Win7, 使用时弹出错误 :
这个错误不是我在代码中定义的,是windows产生的。Google了一下,
发现回答感觉都牛头不对马嘴。大家有人碰到这问题吗?如何解决?谢谢
改为
Drive := Chr(Ord('A') + I);
大小写数值不一样的
谢谢,但是什么原因导致客户弹出那个错误界面的呢?BTW: 那软件我们已经使用了大半年了,在XP, Vista, Win7 32, 64位机器上都测试过,都没有发现问题。那个问题应该是Windows引起的,但如何在我们软件里屏蔽这样的错误呢?谢谢
我的程序写数据时写到人家“只读”的storage设备上了,出现错误。谢谢各位