Einzelnen Beitrag anzeigen

HPW

Registriert seit: 28. Feb 2003
160 Beiträge
 
Delphi 7 Professional
 
#1

ShellExecute mit Anchor nicht mit IE7

  Alt 15. Mär 2007, 13:51
Hallo,

Ich benutze shellexecute mit Anchor um direkt in eine HTML-Dokumentation zu springen.
Was immer funktioniert hat, geht jetzt nicht mehr.
Entweder das IE7 Update oder ein XP-Update müssen das verursacht haben.
Hier eine Demo:

Delphi-Quellcode:
unit Test2;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ShellAPI, Registry,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
  ts : string;
  urlname : string;
begin
   with TRegistry.Create do
     try
       rootkey := HKEY_CLASSES_ROOT;
       OpenKey('\htmlfile\shell\open\command', False);
       try
         ts := ReadString('');
       except
         ts := '';
       end;
       CloseKey;
     finally
       Free;
     end;
   if ts <> 'then
   Begin
    ts := Copy(ts, Pos('"', ts) + 1, Length(ts));
    ts := Copy(ts, 1, Pos('"', ts) - 1);
    urlname := 'file://c:\Programme\newLISP\newlisp_manual.html#setq';
    ShellExecute(0, 'open', PChar(ts), PChar(urlname), nil, SW_SHOW);
   End;
end;

end.
Funktioniert auf einem WIN2K mit IE6 wie immer, aber auf XP SP2 mit IE7 kommt nur die URL ohne '#setq'.
Manuell kann ich '#setq' dahinter tippen und dann komme ich auch zum Kommando.
Aber wer trennt der Anchor-String ab?

Irgend eine Erklärung?
Hans-Peter
  Mit Zitat antworten Zitat