Einzelnen Beitrag anzeigen

Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#29

Re: Welche Dateiendung soll ich verwenden?

  Alt 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.
  Mit Zitat antworten Zitat