AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TWebBrowser: Links mit "file://" öffnen?
Thema durchsuchen
Ansicht
Themen-Optionen

TWebBrowser: Links mit "file://" öffnen?

Ein Thema von MCXSC · begonnen am 10. Jun 2008 · letzter Beitrag vom 11. Jun 2008
Antwort Antwort
MCXSC
(Gast)

n/a Beiträge
 
#1

TWebBrowser: Links mit "file://" öffnen?

  Alt 10. Jun 2008, 01:53
Hallo,

ich habe in meinem Programm die TWebBrowser-Komponente eingebunden. Dort rufe ich nun eine URL auf, die u.a. folgenden HTML-Code beinhaltet:

Delphi-Quellcode:
...



[url="file://c:/datei.end"]datei.end[/url]



...
Nun soll bei einem Klick auf eben diesen Link die Datei "ganz normal" (also wie ein Doppelklick im Explorer) geöffnet werden. Ich habe folgende Funktion eingebunden:

Delphi-Quellcode:
procedure TMainFrm.BrowserBeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
var
  newURL: String;
begin
  newURL := URL;
  ShowMessage(NewURL); //Zu Testzwecken eingebaut
  if newURL <> 'about:blankthen begin
    Cancel := True;
    ShellExecute(Application.Handle, 'open', PChar(newURL), nil, nil, SW_NORMAL);
  end;
end;
Wenn ich nun den Link ("file://c:/datei.end") als HTTP-Link umbaue (also z.B. http://www.delphipraxis.net), wird der Link auch (so wie es sein soll) über "ShellExecute" geöffnet (also im Standardbrowser). Aber bei dem oben genannten "file://"-Link passiert rein gar nichts. M.M.n. wird er nichtmals als Link angenommen, da auch die Zeile "ShowMessage(NewURL)" gar nicht erst ausgeführt wird.

Hat jemand eine Idee?

Danke,
Der S
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: TWebBrowser: Links mit "file://" öffnen?

  Alt 10. Jun 2008, 07:42
Hallo Marcel,

versuche es doch mal mit dem richtigen Vorsatz - file:///c|/datei.end

Grüße vom marabu
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#3

Re: TWebBrowser: Links mit "file://" öffnen?

  Alt 10. Jun 2008, 10:18
Super, danke...

Bei z.B. (c:/datei.end bzw. file:///c|/datei.end) funktioniert es jetzt auch. Nun habe ich aber ein weiteres Problem(chen):

Wenn ich nun einen Link habe, der Leerzeichen enthält (also z.B. "d:/Eigene Dateien/Eigene Bilder/datei.jpg"), dann funktioniert es wohl nicht mehr. Ich habe auch schon versucht, den Link (bzw. den reinen Pfad) mit Hilfe dieser Funktion umzuwandeln. Das Umwandeln klappt auch ohne Probleme und die Funktion gibt mir einen korrekten "ShortPath" zurück. Wenn ich diesen nun bearbeite (also mit "file:///" und "|") klappt es trotzdem nicht im TWebBrowser...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: TWebBrowser: Links mit "file://" öffnen?

  Alt 10. Jun 2008, 10:23
Quote den Pfad
Markus Kinzler
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#5

Re: TWebBrowser: Links mit "file://" öffnen?

  Alt 10. Jun 2008, 10:29
Zitat von mkinzler:
Quote den Pfad
Wo quoten? Im Link ist er gequotet (...), wenn ich ihn bei der Funktion quote überliefert mir die Funktion keinen korrekten Pfad...
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: TWebBrowser: Links mit "file://" öffnen?

  Alt 10. Jun 2008, 21:22
Hallo,

ein schlichtes percent encoding sollte helfen:

Code:
file:///d|/Eigene%20Dateien/Eigene%20Bilder/datei.jpg
Quotes sind eigentlich eher was für die Shell.

Freundliche Grüße
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#7

Re: TWebBrowser: Links mit "file://" öffnen?

  Alt 11. Jun 2008, 02:25
Zitat von marabu:
ein schlichtes percent encoding sollte helfen:
Ja, daran lag es wohl. Die TWebBrowser-Kompontete hat den Pfad mit den Prozenten übermittelt; ich habe diese nun einfach mit einfachen Leerzeichen ersetzt und dann klappts auch. Danke...!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:36 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