So, was stört ich mein Geschwätz von vorhin. Folgendes scheint jetzt zu funktionieren:
Delphi-Quellcode:
procedure Tfo~~.CallInternetAddress(
URL:
String;Multiple:Boolean);
function DefaultBrowser:
String;
var Reg : TRegistry;
begin
Reg:=TRegistry.Create(KEY_READ);
try
Reg.RootKey:=HKEY_CLASSES_ROOT;
if Reg.OpenKeyReadOnly('
\htmlfile\shell\open\command')
then
Result:=Reg.ReadString('
');
if Result[1]='
"'
then begin
delete(Result,1,1);
Result:=copy(Result,1,pos('
"',Result)-1);
end;
finally
Reg.Free;
end;
end;
begin
if Multiple
then ShellExecute(
Handle,
'
open',
PChar(DefaultBrowser),
PChar(
URL),
nil,
SW_ShowNormal)
else ShellExecute(
Handle,
'
open',
PChar(
URL),
nil,
nil,
SW_ShowNormal)
end;
Hoffentlich ist das ein Schlüssel, der in allen Windows-Versionen passt. Für XP ist es offenbar der Richtige. Mit Aufruf kann nun bestimmt werden, ob die
URL in einer neuen Instanz geöffnet werden soll. Zusätzlich wäre noch nett, Position und Größe des Browserfensters festzulegen - aber diese Erweiterung ist ja keine große Aktion...