Versuch mal dieses:
Delphi-Quellcode:
Function ShellUnzip(Zipfile, Targetfolder: WideString;
...
begin
Shellobj:=CreateOleObject('Shell.Application');
if not Assigned(Shellobj) then RaiseLastOSError;
SrcFldr:= Shellobj.NameSpace(Zipfile);
if not Assigned(SrcFldr) then RaiseLastOSError;
DestFldr:=Shellobj.NameSpace(TargetFolder);
if not Assigned(DestFldr) then RaiseLastOSError;
...
Zitat:
ShellFldrItems:=SrcFldr.Items;
Wenn SrcFldr hier NIL ist, dann bedeutet das Shellobj.NameSpace(Zipfile) hat nix zurückgeliefert und da in diesen Codes nirgendwo eventuelle Fehler abgefangen werden, muß es ja irgendwo auch mal heftig knallen.