Autor Beitrag
Radioactive
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 179

Win 98, Win XP Home SP2
D3 Prof, D7 Pers, D2005 Pers
BeitragVerfasst: Sa 18.06.05 14:33 
Hi!

Wie (mit welchem Befehl) starte ich den Standardbrowser oder das Standard-E-Mail-Programm?

Grüße,

_________________
Radioactive
"Wer scrollt, verliert!" Matthias Stein, Informatiklehrer am GG
JayK
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1013



BeitragVerfasst: Sa 18.06.05 14:47 
Lass doch einfach per ShellExecute() eine Internetseite öffnen (zur not eine mitgelieferte HTML-Seite). Dann tut sich der Standard-Browser schonmal auf.
Bei dem Mailprog weiß ich nicht...
Radioactive Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 179

Win 98, Win XP Home SP2
D3 Prof, D7 Pers, D2005 Pers
BeitragVerfasst: Sa 18.06.05 14:50 
Das wusste ich schon. Wenn man es so machen will, wäre es aber eleganter, die Startseite des Nutzers herauszufinden und den Browser damit aufzurufen. Wie geht das? Das ist nämlich auch noch Browserabhängig, wo die abgespeichert wird...

Ich denke, es gibt noch ne andere Lösung, vielleicht irgend einen API-Befehl.

_________________
Radioactive
"Wer scrollt, verliert!" Matthias Stein, Informatiklehrer am GG
Pr0g
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 220


D7 Pers
BeitragVerfasst: Sa 18.06.05 15:02 
So sollte es gehen, bei der Email ist es aber nur der Sendendialog (zumindest bei Outlook Express):
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
// Browser mit Startseite öffnen
ShellExecute(Handle, 'open', 'about:home', nil, nil, SW_SHOWNORMAL);

// Email Programm öffnen (Senden)
ShellExecute(Handle, 'open', 'mailto:', nil, nil, SW_SHOWNORMAL);


MfG Pr0g
Benutzername
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 210

Win XP Pro
Delphi 7 PE, D2005 Prof. SSL
BeitragVerfasst: Sa 18.06.05 15:02 
user profile iconRadioactive hat folgendes geschrieben:
Das wusste ich schon. Wenn man es so machen will, wäre es aber eleganter, die Startseite des Nutzers herauszufinden und den Browser damit aufzurufen. Wie geht das? Das ist nämlich auch noch Browserabhängig, wo die abgespeichert wird...


Starte den Browser doch einfach mit "about:home" als Seite, damit kommt man auf die Startseite ;)
Radioactive Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 179

Win 98, Win XP Home SP2
D3 Prof, D7 Pers, D2005 Pers
BeitragVerfasst: Sa 18.06.05 15:31 
Seltsamerweisewird bei mir immer der IE gestartet, obwohler nicht meil Standardbrwoser ist und nicht Firefox. Beim E-Mail-Programm wird immerhin Thunderbird gestartet, allerdings will ich ja keine E-Mail schreiben, sondern meine E-Mails abrufen. Außerdem zeigt Firefox bei mir keine Reaktion, wenn ich about:home ind die Adresszeile eingebe.

_________________
Radioactive
"Wer scrollt, verliert!" Matthias Stein, Informatiklehrer am GG
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 18.06.05 19:09 
Der Firefox ist in einer Hinsicht unflexibel: Beim großen Bruder, Mozilla, konnte man gezielt einstellen, dass er sich nur bei HTTP und HTTPS melden soll. Bei jedem Webzugriff meldete sich also der Mozilla, während man angeklickte Webseiten (lokal auf dem Rechner) weiterhin im IE sah.
Beim Firefox kann der IE auch weiterhin der Standardbrowser für eine Dateiendung sein. Ich weiß bloß gerade nicht, ob es bei HTM oder HTML war. Jedenfalls zeigt mir in meinem Admin-Konto der Firefox den einen Typ an, der IE den anderen. :roll:

Egal. Thema: Standardbrowser, Standard-Emailprogramm: klick. Der Standardbrowser lässt sich ähnlich ermitteln, denn er steht auch da irgendwo in der Registry.
Radioactive Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 179

Win 98, Win XP Home SP2
D3 Prof, D7 Pers, D2005 Pers
BeitragVerfasst: Sa 18.06.05 22:01 
So, ich habe jetzt mal zwei Funktionen geschrieben, die uns den Alltag erleichtern werden. Der Standardbrowser ist bei mir jetzt derjenige, der für die HTTP-Adressen zuständig ist.
Übrigens: der Firefox überprüft bei seinem Bin-ich-noch-Standard-Browser-Check nicht, ob die Dateien auch mit ihm assoziiert sind, sondern nur, ob das HTTP und das HTTPS-Protokoll ihm gehört.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
/////////////////////////////////////////////////////////////////////////
//  GetDefaultMailApplication
//
//  Diese Funktion gibt Pfad, Dateiname und Parameter des
//  Standardmailprogramm zurück. Der Parameter "ShowAlerts" gibt an,
//  ob Fehlermeldungen gezeigt werden sollen.
//  Dabei wird der Browser als Standard angenommen, der für das
//  HTTP-Protokoll verwendet wird.
//
//  Nicht vergessen, die Unit "Registry" einzubinden!
//
function GetDefaultMailApplication(ShowAlerts: Boolean): string;
var
  reg: TRegistry;
  regstr, openstr: string;
begin
  reg := TRegistry.Create(KEY_READ);
  try
    reg.RootKey := HKEY_LOCAL_MACHINE;
    if reg.OpenKey('Software\Clients\Mail',false) then
    begin
      regstr := reg.ReadString('');
      reg.CloseKey;
      if Length(regstr) > 0 then
      begin
        if reg.OpenKey('Software\Clients\Mail\' + regstr
         + '\shell\open\command',false) then
        begin
          openstr := reg.ReadString('');
          reg.CloseKey;
          if Length(openstr) > 0 then
            Result := openstr else
              if ShowAlerts then
              ShowMessage('Für das Standardmailprogramm wurde '
               + 'kein Pfad festgelegt. Bitte installieren Sie '
               + 'es ggf. neu.');
        end else
          if ShowAlerts then
          ShowMessage('Die Informationen über das '
           + 'Standardmailprogramm sind unvollständig. Bitte '
           + 'installieren Sie es ggf. neu.');
      end else
        if ShowAlerts then
        ShowMessage('Es ist kein Mailprogramm '
         + 'installiert oder als Standardmailprogramm definiert.');
    end;
  finally
    reg.CloseKey;
    reg.Free;
  end;
end;


/////////////////////////////////////////////////////////////////////////
//  GetDefaultBrowser
//
//  Diese Funktion gibt Pfad, Dateiname des Standardbrowsers zurück. 
//  Der Parameter "ShowAlerts" gibt an, ob Fehlermeldungen gezeigt 
//  werden sollen.
//
//  Nicht vergessen, die Unit "Registry" einzubinden!
//
function GetDefaultBrowser(ShowAlerts: Boolean): string;
var
  reg: TRegistry;
  regstr: string;
begin
  reg := TRegistry.Create(KEY_READ);
  try
    reg.RootKey := HKEY_CLASSES_ROOT;
    if reg.OpenKey('HTTP\shell\open\command',false) then
    begin
      regstr := reg.ReadString('');
      reg.CloseKey;
      if Length(regstr) > 0 then
      begin
        // überflüssige Parameter wegschneiden...
        while (AnsiLowerCase(Copy(regstr, Length(regstr)-3, 4)) <> '.exe')
         and (Length(regstr) > 0) do
          regstr := Copy(regstr, 1, Length(regstr)-1);
        // und zurück an den Absender
        Result := regstr;
      end else
        if ShowAlerts then
        ShowMessage('Es ist kein Browser installiert oder '
         + 'als Standardbrowser definiert.');
    end;
  finally
    reg.CloseKey;
    reg.Free;
  end;
end;

_________________
Radioactive
"Wer scrollt, verliert!" Matthias Stein, Informatiklehrer am GG