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: So 19.06.05 11:21 
Standardbrowser und Standardmailprogramm herausfinden

Manchmal ist es ganz nützlich, zu wissen, was der Standardbrowser oder das Standardmailprogramm ist. Hier zwei Funktionen dafür, bitte nicht vergessen, die Unit "Registry" einzubinden.

Der Standardbrowser ist bei mir jetzt derjenige, der für die HTTP-Adressen zuständig ist, z.B. der Firefox überprüft bei seinem Bin-ich-noch-Standard-Browser-Check, ob das HTTP und das HTTPS-Protokoll mit ihm assoziiert sind. [meta]Defaultbrowser default Defaultmailapplication E-Mail[/meta]

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:

  GetDefaultMailApplication
  
  Es wird das Mailprogramm als Standard angenommen, das 
  für das MAILTO-Protokoll verwendet wird.
  
  Falls kein Standardmailprogramm definiert ist oder ein 
  Zugriff auf einen Schlüssel nicht möglich ist, wird ein 
  leerer String zurückgegeben.
  
  Nicht vergessen, die Unit "Registry" einzubinden!  
}

function GetDefaultMailApplication: string;
var
  reg: TRegistry;
  regstr, openstr: string;
begin
  Result := '';
  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
        if reg.OpenKey('Software\Clients\Mail' + regstr + 'shellopencommand',false) then
        begin
          openstr := reg.ReadString('');
          reg.CloseKey;
          if Length(openstr) > 0 then Result := openstr;
        end;
    end;
  finally
    reg.CloseKey;
    reg.Free;
  end;
end;



  GetDefaultBrowser
  
  Es wird der Browser als Standard angenommen, der für das
  HTTP-Protokoll verwendet wird.
  
  Falls kein Standardbrowser definiert ist oder ein Zugriff
  auf einen Schlüssel nicht möglich ist, wird ein leerer
  String zurückgegeben.
  
  Nicht vergessen, die Unit "Registry" einzubinden!  
}

function GetDefaultBrowser: string;
var
  reg: TRegistry;
  regstr: string;
begin
  Result := '';
  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)-34)) <> '.exe')
         and (Length(regstr) > 0do
          regstr := Copy(regstr, 1, Length(regstr)-1);
        // und Ergebnis zurückgeben
        Result := regstr;
      end;
    end;
  finally
    reg.CloseKey;
    reg.Free;
  end;
end;

Moderiert von user profile iconjasocul: Beitrag geprüft am 04.07.2006

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