Registriert seit: 19. Apr 2003
1.291 Beiträge
Delphi 2005 Professional
|
Re: Welche Dateiendung soll ich verwenden?
2. Feb 2004, 22:47
Ups... da hab ich blödsinn geschrieben. Es muss ein Wert "NeverShowExt" eingefügt werden
Ich verwende dafür immer folgende procedure:
Delphi-Quellcode:
procedure RegisterFileType(Extension: string; exepfad,
description: string; IconIndex: integer);
var
reg: TRegistry;
Created: boolean;
MyBin: array[0..3] of byte;
begin
Created := False;
try
reg := TRegistry.Create;
reg.RootKey := HKEY_CLASSES_ROOT;
//create a new key --> .[Extension]
reg.OpenKey('.' + Extension, True);
try
//create a new value for this key --> [Extension]file
reg.Writestring('', Extension + 'file');
finally
reg.CloseKey;
end;
//create a new key --> [Extension]file
reg.CreateKey(Extension + 'file');
//write description
reg.OpenKey(Extension + 'file', True);
reg.Writestring('', description);
reg.Writestring('NeverShowExt', '');
if reg.ValueExists('AlwaysShowExt') = True then
reg.DeleteValue('AlwaysShowExt');
MyBin[0] := 0;
MyBin[1] := 0;
MyBin[2] := 1;
MyBin[3] := 0;
reg.WriteBinaryData('EditFlags', MyBin, 4);
reg.CloseKey;
//create a new key pcifile\DefaultIcon
reg.OpenKey(Extension + 'file\DefaultIcon', True);
//and create a value where the icon is stored --> c:\project1.exe,0
if reg.Readstring('') <> exepfad + ',' + IntToStr(IconIndex) then
begin
Created := True;
try
reg.Writestring('', exepfad + ',' + IntToStr(IconIndex));
finally
reg.CloseKey;
end;
reg.OpenKey(Extension + 'file\shell\open\command', True);
//create value where exefile is stored --> c:\project1.exe "%1"
try
reg.Writestring('', exepfad + ' "%1"');
finally
reg.CloseKey;
end;
end;
finally
reg.Free;
end;
if Created = True then
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
end;
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
|
|
Zitat
|