Thema: Delphi Standardbrowser öffnen

Einzelnen Beitrag anzeigen

MathiasSimmack
(Gast)

n/a Beiträge
 
#13
  Alt 4. Jan 2003, 19:38
Eine einfache Lösung für den IE:
Delphi-Quellcode:
ShellExecute(0,
  'opennew', // <-- !
  'http://www.delphipraxis.net',
  nil,
  nil,
  SW_SHOWNORMAL);
Es wäre natürlich möglich, dass andere Browser diesen Schlüssel auch anlegen. Das wäre natürlich am einfachsten, aber als Pessimist würde ich erst mal nur auf den IE tippen. Daher die Lösung #2: mit der "Registry"-Unit das Programm herausfinden, das für "http" zuständig ist.
Delphi-Quellcode:
uses
  Registry;

{ ... }

var
  reg : TRegistry;
  cmd : string;
begin
  reg := TRegistry.Create(KEY_READ);
  with reg do
  try
    RootKey := HKEY_CLASSES_ROOT;
    if(OpenKey('http\shell\open\command',false)) then
    try
      cmd := ReadString('');
    finally
      CloseKey;
    end;
  finally
    Free;
  end;

  ShellExecute(0,
    'open',
    pchar(cmd),
    'http://www.delphipraxis.net',
    nil,
    SW_SHOWNORMAL);
end;
(Ungetestet aus dem Kopf geschrieben. Bitte berücksichtigen!)

Sollte durch irgendwelche Widrigkeiten der "http"-Schlüssel nicht vorhanden sein, kann man zuerst ".html" öffnen und dort den Standardstring auslesen (s. "cmd := ReadString('');"). Dieser verweist auf einen zweiten Schlüssel (meist "htmlfile"), der dann wieder den Pfad zum Programm enthält:
Code:
htmlfile/shell/open/command
(bitte RegEdit benutzen und die Pfadnamen im Zweifelsfall suchen)

Ich glaube, für solche Sachen gab´s auch ´ne einfachere API-Funktion. Aber da muss ich erst mal gucken; kann sein, dass ich da was verwechsele. Vielleicht weiß die Antwort schon jemand, ansonsten melde ich mich noch mal, wenn sie mir wieder einfällt.
  Mit Zitat antworten Zitat