![]() |
Icon ändern
Hi,
ich möchte, nachdem ich eine Datei verschlüsselt habe, das sich das Icon der verschlüsselten Datei ändert. Quasi als Markierung. Nachdem die Verschlüsslung feddich ist, müsste dann doch eine then- Anweisung kommen. Hab dafür dies hier gefunden: WM_SETICON |
Re: Icon ändern
WM_SETICON funktioniert nur für Fenster. Wenn da Icon der Datei im Explorer ändern willst, musst die eine Dateiendung registrieren und für diese Endung ein Icon setzen. Wenn jemand interessiert ist (ausser dir) mach ich Tuturial.
|
Re: Icon ändern
Ja, ich! Hier! *sichmeld* :mrgreen:
|
Re: Icon ändern
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; |
Re: Icon ändern
Ach, Meflin, und da hatte sich Dax schon so gefreut. :)
Aber btw: das hatten wir alles [dp="Dateityp registrieren"]schon[/dp]. |
Re: Icon ändern
mir fällt auf das steht noch garnicht in der code lib. da sollts aber schleunigst rein...
|
Re: Icon ändern
Nur als Tipp (im DF müsste sich irgendwo noch eine entsprechende Routine von mir rumtreiben): Wenn du wirklich eine clevere, universelle Funktion für die Code-Lib schreiben willst, dann sorge dafür, dass man auch das Verb selbst wählen kann und nicht bloß auf "open"
Zitat:
Ach Ja: Und eine Prüfung ("OpenKey" ist eine Funktion, und "WriteString" erzeugt im Fehlerfall eine Exception) wäre auch nicht schlecht. Kriegst du das hin? Okay, dann hast du einen sehr guten Beitrag für die Code-Lib. ;) |
Re: Icon ändern
wär natürlich auch net weiter schwer. nur welche ausser open gibts denn da noch so?
|
Re: Icon ändern
Wirf doch einen Blick in das Kontextmenü diverser Dateitypen.
Öffnen, Ausführen, Drucken, ... usw. usw. Wie du die Verbs nennst, ist letztlich egal (wobei "open", "edit" und "print" natürlich üblicher Standard sind). Wichtig wäre vielleicht auch, dass so eine Registrierungsfunktion nicht einfach blind einen neuen Eintrag erstellt, sondern dass sie vielleicht nachschaut ob der Typ schon registriert ist und dann nur noch den schon vorhandenen Schlüssel ergänzt. Zu beachten gäbe es also einiges. ![]() In Bezug auf das eben genannte Problem müsste man meine "RegisterFileType"-Routine bspw. so erweitern, dass sie (wie oben erwähnt) prüft ob es den Dateityp evtl. schon gibt. Im Augenblick ignoriert sie das nämlich auch, wenn ich ehrlich sein soll. :oops: |
Re: Icon ändern
so, hier einminiupdate ;-)
Delphi-Quellcode:
alles andere wäre für meine zwecke overkill, aber ich werde keinen daran hindern, es hinzuzufügen...
function InstallExt(Extension, ExtDescription, FileDescription,
OpenWith, ParamString: string; IconIndex: Integer; ExtVerb: string = 'Open'): 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\'+ExtVerb+'\Command', True); WriteString('', '"' + OpenWith + '" "' + ParamString + '"'); end; Result := True; except Result := False; end; Reg.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz