AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Icon ändern

Ein Thema von sui · begonnen am 4. Jun 2004 · letzter Beitrag vom 5. Jun 2004
Antwort Antwort
Benutzerbild von sui
sui

Registriert seit: 1. Jun 2004
Ort: Neben mir...
108 Beiträge
 
#1

Icon ändern

  Alt 4. Jun 2004, 02:08
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
Das Leben ist ein einziger Trip.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Icon ändern

  Alt 4. Jun 2004, 07:16
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.
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Icon ändern

  Alt 4. Jun 2004, 10:33
Ja, ich! Hier! *sichmeld*
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#4

Re: Icon ändern

  Alt 4. Jun 2004, 10:37
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;
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#5

Re: Icon ändern

  Alt 4. Jun 2004, 10:38
Ach, Meflin, und da hatte sich Dax schon so gefreut.
Aber btw: das hatten wir alles [dp="Dateityp registrieren"]schon[/dp].
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#6

Re: Icon ändern

  Alt 4. Jun 2004, 10:40
mir fällt auf das steht noch garnicht in der code lib. da sollts aber schleunigst rein...
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#7

Re: Icon ändern

  Alt 4. Jun 2004, 10:44
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:
OpenKey('\' + ExtDescription + '\Shell\Open\Command', True);
festgelegt ist.

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.
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#8

Re: Icon ändern

  Alt 4. Jun 2004, 10:49
wär natürlich auch net weiter schwer. nur welche ausser open gibts denn da noch so?
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#9

Re: Icon ändern

  Alt 4. Jun 2004, 11:12
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.

Hier übrigens mein Vorschlag aus dem DF. Sicher auch noch nicht perfekt, aber man könnte mal über das System diskutieren. Evtl. entsteht als Ergebnis ja der ultimative Code-Lib-Code.
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.
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#10

Re: Icon ändern

  Alt 5. Jun 2004, 14:28
so, hier einminiupdate
Delphi-Quellcode:
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;
alles andere wäre für meine zwecke overkill, aber ich werde keinen daran hindern, es hinzuzufügen...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 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