Entwickler-Ecke

Dateizugriff - Anker werden nicht angesprungen


Lemmy - Di 12.02.08 08:38
Titel: Anker werden nicht angesprungen
Hi,

ich rufe mit shellexecute ein HTML (XHTML) Dokument auf - das klappt auch schön. Was nicht klappt: Innerhalb des Dokuments gibt es Anker, die ich gerne anspringen will, allerdings kommen beim Browser die Anker nicht an - sondern nur die eigentliche HTML-Datei.

Beispiel: Der Link:


Quelltext
1:
file:///c:/Test/Test1/1234567.htm#1234567:sub1                    


das zeigt der Browser (Firefox oder IE) an:

Quelltext
1:
file:///c:/Test/Test1/1234567.htm                    


der Aufruf erfolgt durch:
ShellExecute(self.Handle,'open',PAnsiChar(url),'','',SW_SHOW);

Ich habe schon versucht den Anker über die Parameter zu übergeben, bringt aber auch nix.

Woran liegts? Wenn ich den vollständigen Link in einem der Browser angebe, wird die Datei geöffnet und auch an den Anker gesprungen...

Grüße
Lemmy

Edit: Doppelpost: http://forum.delphi-treff.de/showthread.php?t=22854


Moderiert von user profile iconNarses: Topic aus Internet / Netzwerk verschoben am Sa 20.02.2010 um 00:22


Lemmy - Di 12.02.08 11:17

Hi,

Zwischenstand:

wenn ich unter XP den Aufruf umbaue:


Delphi-Quelltext
1:
ShellExecute(self.Handle,'open',PAnsiChar(IE_Exe),PAnsiChar(url),'',SW_SHOW);                    


also die IE-Exe angebe und die URL als Parameter, wird der Anker angesprungen.

Unter Vista funktioniert aber selbst das Vorgehen nicht...

Grüße
Lemmy


trm - Fr 19.02.10 19:37

Huhu Lemmy,

ich hab das Datum gesehen, ja.

Aber hast Du dennoch eine Lösung gefunden?

Ich hatte das gleiche Problem und habe einfach mal den String in "<string>" gepackt. Damit hat es dann funktioniert.


Delphi-Quelltext
1:
2:
3:
  if Length(Trim(Nav)) > 0 then
    URL := '"file:///' + URL + Nav + '"';
  ShellExecute(0'open', PChar(Url), nilnil, SW_SHOWNORMAL);


URL und NAV sind über eine Procedure übergebene String-Parameter.

Beispiel:

Delphi-Quelltext
1:
ShellExecute(0'open', PChar("http://www.delphi-forum.de/viewtopic.php#487508"), nil, nil, SW_SHOWNORMAL);                    

Geht auch mit einer lokalen Datei unter Windows XP.

Gruß
~Mathias

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


trm - Mo 05.07.10 14:12

Huhu Lemmy,

guck mal, wir haben eine Lösung gefunden:

http://www.delphiforum.de/viewtopic.php?p=610588


Lemmy - Di 06.07.10 07:58

hi,


Danke für den Hinweis und die Lösung! Dieses Feature wurde damals (leider) nicht mehr weiter verfolgt. Aber danke für den Hinweis, das kann man immer wieder mal brauchen...
Grüße