Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi InternetSeite aufrufen (ShellExecute) (https://www.delphipraxis.net/18434-internetseite-aufrufen-shellexecute.html)

Pseudemys Nelsoni 18. Mär 2004 14:11


InternetSeite aufrufen (ShellExecute)
 
hallo,

ich benutze den explorer "mozilla firefox", und möchte, das wenn man in meinem pro eine schrift anklickt sich eine neue seite im explorer öffnet.
ich lese den command schlüssel aus der registry "http\shell\open\command", dort steht der pfad aber so:

Zitat:

C:\PROGRA~1\MOZILL~1\FIREFOX.EXE -url "%1"
mit den ~ dingern im pfad funktioniert das aufrufen aber irgendwie nicht, wie kriege ich denn den "richtigen" pfad?

Pseudemys Nelsoni 18. Mär 2004 14:22

Re: InternetSeite aufrufen (ShellExecute)
 
geht doch, komischerweise musste ich das -url etc abschneiden...

Luckie 18. Mär 2004 14:25

Re: InternetSeite aufrufen (ShellExecute)
 
Nein nicht komischerweise, sondern korrekterweise. -url ist ein Schalter für das programm und "%1" steht für einen beliebigen Parameter, hier wohl der Pfad der zu öffnenden URL.

APP 18. Mär 2004 14:27

Re: InternetSeite aufrufen (ShellExecute)
 
Schade, sonst hätte ich Dir

Delphi-Quellcode:
    FUNCTION ExtractLongFileName(CONST FileName: STRING): STRING;
    VAR
      Info                        : TSHFileInfo;
    BEGIN
      IF SHGetFileInfo(PChar(FileName), 0, Info, Sizeof(Info), SHGFI_DISPLAYNAME) <> 0 THEN
        Result := STRING(Info.szDisplayName)
      ELSE
        Result := FileName;
    END;
empfohlen :wink:

BTW: wenn Du die Parameter mit verwenden möchtest, (sind wohl nur für Shelleoperationen nötig) dann
gibt es in der Shellexecute-Funktion einen eigenen Parameter dafür:

Code:
    LPCTSTR lpParameters,   // pointer to string that specifies executable-file parameters

Pseudemys Nelsoni 18. Mär 2004 14:37

Re: InternetSeite aufrufen (ShellExecute)
 
hallo,

"korrekterweise", hm, jo, ich frag mich nur wie das mit den "~" im pfad geht.

@app: sorry den code versteh ich nicht ganz *g*.

@thema: jetzt hab ich mozilla deinstalliert um zu testen obs mit dem IE geht - natürlich gehts nicht....nur wieso? ich habe es insgesamt so:

Delphi-Quellcode:
function GetExplorerPath: string;
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
  with reg do
  begin
    RootKey := HKEY_CLASSES_ROOT;
    if OpenKey('http\shell\open\command', false) then
      result := Copy(ReadString(''), 1, Pos('exe', lowercase(ReadString('')))+2); //hier schneide ich alles hinter exe aus, was wohl ziemlich unsicher sein dürfte wenn 2mal "exe" vorkommt...
    Free;
  end;
end;

...

procedure TForm3.Label6Click(Sender: TObject);
begin
  ShellExecute(0, 'open', PChar(GetExplorerPath), PChar(Label6.Caption), nil, SW_SHOWNORMAL);
end;

jemand ne idee wieso das beim IE nicht geht?

Pseudemys Nelsoni 18. Mär 2004 14:46

Re: InternetSeite aufrufen (ShellExecute)
 
k habs...Komischerweise...benutzt der IE Gänsefüschen im pfad...hergott

Luckie 18. Mär 2004 17:40

Re: InternetSeite aufrufen (ShellExecute)
 
Was auch wieder korrekt ist, da du sonst Probleme mit Leerzeichen im Pfad bekommst.

Aber nimm einfach Shellexecute, dann wird die Seite immer im standard Browser angezeigt, den sich der Benutzer eingerichtet hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 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