AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Link mit ShellExecute aufrufen
Thema durchsuchen
Ansicht
Themen-Optionen

Link mit ShellExecute aufrufen

Ein Thema von wp_xxyyzz · begonnen am 1. Feb 2010 · letzter Beitrag vom 2. Feb 2010
 
wp_xxyyzz

Registriert seit: 2. Okt 2006
23 Beiträge
 
#10

Re: Link mit ShellExecute aufrufen

  Alt 2. Feb 2010, 19:25
Ich habe nun eine Lösung gefunden: Man muss die Anwendung, die die URL öffnen soll, explizit im ShellExecute-Aufruf eintragen. Da die Firewall diese Anwendung in der Regel ja kennt, wird überhaupt nicht danach gefragt, ob der Netzzugriff erlaubt werden soll oder nicht.

Delphi-Quellcode:
uses
  ShellApi;

procedure TForm1.Button1Click(Sender: TObject);
var
  fn, browser : string;
begin
  fn := 'http://www.delphipraxis.net/';
  browser := GetDefaultBrowser; // siehe unten!
  ShellExecute(0, 'open', PChar(browser), PChar(fn), '', SW_NORMAL);
end;
Um den Default-Browser zu suchen, verwende ich eine Routine nach http://edn.embarcadero.com/article/26083:

Delphi-Quellcode:
function GetDefaultBrowser: string;
var
  tmp: PChar;
  res: LPTSTR;
begin
  result := '';
  tmp := StrAlloc(255);
  res := StrAlloc(255);
  try
    GetTempPath(255, tmp);
    if FileCreate(tmp + 'htmpl.htm') <> -1 then
    begin
      if FindExecutable('htmpl.htm', tmp, res) > 32 then
        result := res;
      SysUtils.DeleteFile(tmp + 'htmpl.htm');
    end;
  finally
    StrDispose(tmp);
    StrDispose(res);
  end;
end;
Etwas stört mich, dass die Temporärdatei "htmpl.htm" nach dem Beenden des Programms noch vorhanden ist. Diese Datei wurde erzeugt, da die Windows-Funktion FindExecutable eine existierende Datei benötigt, um das mit der Endung .htm verknüpfte Programm zu finden. Warum wird diese Datei nicht gelöscht, obwohl DeleteFile aufgerufen wird?

Oder statt einer Hilfsdatei: Gibt es eine HTML-Datei, die in jedem Windowssystem vorkommt, um sie für FindExecutable verwenden zu können?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz