Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Dateitypen automatisch öffnen TWebbrowser (https://www.delphipraxis.net/83435-dateitypen-automatisch-oeffnen-twebbrowser.html)

E307 2. Jan 2007 20:33


Dateitypen automatisch öffnen TWebbrowser
 
Hallo!
Wie kann ich im TWebBrowser einstellen, dass bestimmte Dateien eines Typs (z.B. .mp3 oder .rtf) beim Klick auf den Link automatisch mit einem vorher festgelegten Programm geöffnet werden?

marabu 2. Jan 2007 21:18

Re: Dateitypen automatisch öffnen TWebbrowser
 
Hi,

dazu dienen die sogenannten Browser Helper Objects.

Gute Nacht

E307 3. Jan 2007 11:52

Re: Dateitypen automatisch öffnen TWebbrowser
 
Ich meine nur in einem TWebBrowser in meinem Programm. Nicht gleich im ganzen InternetExplorer!

E307 18. Jan 2007 16:10

Re: Dateitypen automatisch öffnen TWebbrowser
 
Hat keiner eine Idee? (Es geht darum, Anwendungen (EXE) oder andere Dokumente automatisch ohne Nachfrage zu öffnen. Das soll aber nur in diesem Einen Programm möglich sein)

E307 19. Jan 2007 18:56

Re: Dateitypen automatisch öffnen TWebbrowser
 
Es gibt doch auch andere Programme, wie z.B. die Systeme von der PCWelt, oderso, die sowas mit dem IE machen können! Geht das nicht mit Delphi?

toms 19. Jan 2007 19:09

Re: Dateitypen automatisch öffnen TWebbrowser
 
Schau dir mal TranslateURL von MSDN-Library durchsuchenIDocHostUIHandler) an.
Vielleicht lässt sich damit etwas machen.

marabu 19. Jan 2007 19:42

Re: Dateitypen automatisch öffnen TWebbrowser
 
Hallo Thomas,

OnTranslateUrl() gestattet die Abänderung eines URL, bevor er beim Server abgefragt wird - wäre da nicht OnBeforeNavigate2() besser geeignet?

Ich könnte mir vorstellen, dass man im Event OnBeforeNavigate2() den URL zerlegt (InternetCrackUrl) und bei Feststellung einer speziellen Erweiterung die Navigation abbricht, das Dokument per Download (Indy oder WinInet) besorgt und dann per temporärer Datei und ShellExecute() (nicht jedes Helper-Programm wird ein Stream-Interface mitbringen) an das assoziierte Programm übergibt.

Freundliche Grüße

E307 20. Jan 2007 10:45

Re: Dateitypen automatisch öffnen TWebbrowser
 
Danke, jetzt geht's! :thumb: 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]


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz