Entwickler-Ecke

Dateizugriff - ...Standardbrowser und Standardmailprogramm herausfinden?


Radioactive - So 19.06.05 11:21
Titel: ...Standardbrowser und Standardmailprogramm herausfinden?
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]


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