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?