Danke, jetzt geht's!
Hier der Code:
Delphi-Quellcode:
uses ShellAPI;
//...
procedure TForm1.WebBrowser1BeforeNavigate2(ASender: TObject;
const pDisp: IDispatch;
var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant;
var Cancel: WordBool);
var h:
String;
begin
H:=LowerCase(ExtractFileext(
URL));
if (h ='
.exe')
or (h='
.mp3')
or (h='
.rtf')
then begin
Cancel:=true;
h:=
URL;
Shellexecute(Application.Handle, '
open', PAnsiChar(h),
nil,
nil, SW_ShowNormal);
end;
end;
Vielleicht bekommt man die Umwandlung von OLEVariant in PAnsiChar besser hin, aber der Code hier funktioniert jedenfalls!
[edit]Code hinzugefügt[/edit]