Registriert seit: 17. Jan 2007
1.169 Beiträge
Turbo Delphi für Win32
|
Re: Dateiendung mit anderem Icon registrieren
30. Mär 2007, 20:02
Hi,
ich habe den Code etwas abgeändert, dass er auch mit Icon Dateien umgehen kann.
Delphi-Quellcode:
uses Registry;
function InstallExt(Extension, ExtDescription, FileDescription,
OpenWith, ParamString, IconPfad: string; IconIndex: Integer = 0): Boolean;
var
Reg: TRegistry;
begin
Result := False;
if Extension <> '' then
begin
if Extension[1] <> '.' then
Extension := '.' + Extension;
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CLASSES_ROOT;
if Reg.OpenKey(Extension, True) then
begin
Reg.WriteString('', ExtDescription);
if Reg.OpenKey('\' + ExtDescription, True) then
begin
Reg.WriteString('', FileDescription);
if Reg.OpenKey('DefaultIcon', True) then
begin
Reg.WriteString('', Format('%s,%d', [IconPfad, IconIndex]));
if Reg.OpenKey('\' + ExtDescription + '\Shell\Open\Command', True) then
begin
Reg.WriteString('', Format('"%s" "%s"', [OpenWith, ParamString]));
Result:=True;
end;
end;
end;
end;
finally
Reg.Free;
end;
end;
end;
function UnInstallExt(Extension: String): Boolean;
var
Reg: TRegistry;
Description: String;
begin
Result := False;
if Extension <> '' then
begin
if Extension[1] <> '.' then
Extension := '.' + Extension;
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_CLASSES_ROOT;
if Reg.KeyExists(Extension) then
begin
Reg.OpenKey(Extension, false);
Description:=Reg.ReadString('');
Reg.CloseKey;
if Reg.KeyExists('\'+Description) then
Result:=Reg.DeleteKey(Extension) and Reg.DeleteKey('\' + Description);
end;
finally
Reg.Free;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if InstallExt('.aaa', 'AAADatei', 'Tolles Programm', ParamStr(0), '"%1"','c:\2.ico',0) then
Showmessage('Dateiendung konnte erfolgreich registriert werden.');
end;
EDIT: Oder du trägst anstatt des Icones, den Pfad zu einer anderen EXE Datei ein.
Der Code arbeitet zwar mit OpenKey, aber nicht mit CloseKey.
Gruß bitsetter
"Viele Wege führen nach Rom" Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
|
|
Zitat
|