Autor Beitrag
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 11.10.02 09:37 
Mein Vorschlag einer universelleren Funktion als die, die im SwissDelphiCenter gepostet wurde, sieht so aus:
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:
uses
  Registry, ComObj;

procedure CreateExplorerButton(const szAppname, szButtonText,
  szMenuText, szStatusbarText: stringconst IsVisible: boolean;
  const szHotIcon, szIcon: string);
const
  IEExtensions = 'Software\Microsoft\Internet Explorer\Extensions\';
  DefVisible : array[boolean]of string = ('No','Yes');
var
  reg : TRegistry;
begin
  reg := TRegistry.Create;
  with reg do
    try
      RootKey := HKEY_LOCAL_MACHINE;
      if(OpenKey(IEExtensions + CreateClassId,true)) then
        try
          WriteString('ButtonText',szButtonText);
          WriteString('MenuText',szMenuText);
          WriteString('MenuStatusBar',szStatusbarText);
          WriteString('CLSID','{1FBA04EE-3024-11d2-8F1F-0000F87ABD16}');
          WriteString('Default Visible',DefVisible[IsVisible]);
          WriteString('Exec','"' + szAppname + '"');
          WriteString('HotIcon',szHoticon);
          WriteString('Icon',szIcon);
        finally
          CloseKey;
        end;
    finally
      Free;
    end;
end;

Sie hat zwar mehr Parameter, muss aber genau deswegen nicht für jedes Programm extra angepasst werden, weil man alle wichtigen Dinge direkt angeben kann. Etwa so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Button1Click(Sender: TObject);
begin
  CreateExplorerButton(paramstr(0), // Pfad meiner Anwendung
    'MeinButtontext'// Buttontext
    'MeinMenüeintrag'// Text im Menü "Extras"
    'Text in der Statuszeile'// Text in der Statuszeile
    true, // Button sichtbar?
    ',1'// HotIcon
    ',2'); // Icon
end;