Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mal wieder Dateierweiterungen (https://www.delphipraxis.net/21344-mal-wieder-dateierweiterungen.html)

Meflin 1. Mai 2004 09:58


Mal wieder Dateierweiterungen
 
Hi,
ich verwende diese functions um die dateiendungen meines progs zu verwalten:
Delphi-Quellcode:
function InstallExt(Extension, ExtDescription, FileDescription,
                    OpenWith, ParamString: String; IconIndex: Integer): Boolean;
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    with Reg do
     begin
      RootKey := HKEY_CLASSES_ROOT;
      OpenKey(Extension, True);
      WriteString('', ExtDescription);
      OpenKey('\' + ExtDescription, True);
      WriteString('', FileDescription);
      OpenKey('DefaultIcon', True);
      WriteString('', OpenWith + ','+IntToStr(IconIndex));
      OpenKey('\' + ExtDescription + '\Shell\Open\Command', True);
      WriteString('', '"' + OpenWith + '" "' + ParamString + '"');
     end;
   Result := True;
  except
   Result := False;
  end;
  Reg.Free;
end;

function UnInstallExt(Extension, ExtDescription: String): Boolean;
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    with Reg do
     begin
      RootKey := HKEY_CLASSES_ROOT;
      DeleteKey(Extension);
      DeleteKey('\' + ExtDescription);
     end;
   Result := True;
  except
   Result := False;
  end;
  Reg.Free;
end;
was mus ich machen bzw wie muss ich es machen, dass eine so installierte endung ein anderes icon erhält wie das mainicon des progs? mit dem iconindex komm ich irgendwie net klar!

*MFG*

faux 1. Mai 2004 10:05

Re: Mal wieder Dateierweiterungen
 
Meinst du dass in einer Datei (dll oder exe oder so) mehrere Icons sind, die verwendet werden, anstatt von vielen einzelnen???

fkerber 1. Mai 2004 10:11

Re: Mal wieder Dateierweiterungen
 
Hi!

Ich denke mal, er will, dass ein mit seinem Programm verknüpfter Dateityp ein anderes Icon hat als seine Programm-Datei.

Ciao fkerber

Meflin 1. Mai 2004 10:17

Re: Mal wieder Dateierweiterungen
 
korrekt

faux 1. Mai 2004 10:31

Re: Mal wieder Dateierweiterungen
 
also wie das genau funktioniert weiß ich nicht...
aber du kannst ja mal bestehende Schlüssel ansehen, zB die von Office. Da is das so...

SirThornberry 1. Mai 2004 10:48

Re: Mal wieder Dateierweiterungen
 
so weit ich weiß gibt man einfach die symboldatei an und dann mit Komma getrennt den Index

Christian Seehase 1. Mai 2004 13:41

Re: Mal wieder Dateierweiterungen
 
Moin Meflin,

Du kannst in Deiner Programmdatei mehrere Icons einbinden.
Das MainIcon ist dann das, was Windows für Dein Programm anzeigt.
Sind weitere enthalten, musst Du nur den entsprechenden Index an die Funktion übergeben.

Andere Variante:
Du erweitertst die Funktion dahingehend, dass beim Key DefaultIcon nicht der Pfad des Programmes genommen, wird, sondern halt das, aus dem das Icon kommen soll.

BTW:
Zu jedem OpenKey gehört auch ein CloseKey.

Meflin 1. Mai 2004 13:54

Re: Mal wieder Dateierweiterungen
 
ok hab ich gemacht. wenn ich in den ordneroptionen die dateiendungen überprüf, stimmt das icon. aber im explorer wird immernoch das mainicon verwendet?!

Christian Seehase 1. Mai 2004 13:58

Re: Mal wieder Dateierweiterungen
 
Moin Meflin,

dann schau Dir mal SHChangeNotify an.
In Deinem Falle in Kombination mit dem Flag SHCNE_ASSOCCHANGED.

Der Explorer wird sich das Icon vermutlich aus der Systemimagelist ziehen, bei der aber, sozusagen, die Änderung noch nicht angekommen ist.

Ersatzweise sollte es auch ein Reboot tun.

Meflin 1. Mai 2004 14:02

Re: Mal wieder Dateierweiterungen
 
ok jetzt passt alles!


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz