Habs nach einigem googeln und rumprobieren geschafft, es nach Delphi zu portieren, hoffe ich zumindest. Es ist keine Eins-zu-Eins Umsetzung, denn ich wußte nicht, wie man in Delphi sowas wie "OnErrorResumNext und dann gib mit den Fehlercode" macht und habe das mMn entsprechend in try...except gepackt. Da ich auch nicht wußte, was die ErrCode 68 Entsprechung in Delphi ist, hab ich das auch weggelassen.
Es funktioniert aber so wie ich dachte das es soll.
Delphi-Quellcode:
procedure TMain.Test(Pfad :
String);
var
b : Boolean;
fso : OleVariant;
begin
try
// b := CreateOleObject('Scripting.FileSystemObject').GetDrive(fso.GetDriveName(Pfad)).IsReady;
// obige Zeile kompiliert nicht, umweg über fso-Variable muss scheinbar sein
fso := CreateOleObject('
Scripting.FileSystemObject');
b := fso.GetDrive(fso.GetDriveName(Pfad)).IsReady;
if b
then showmessage('
Verfügbar und bereit')
else showmessage('
Verfügbar aber nicht bereit')
except // on e : Exception do
showmessage('
Nicht verfügbar');
end;
end;