AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Dateitypen und deren Icon auslesen (Problem)
Thema durchsuchen
Ansicht
Themen-Optionen

Dateitypen und deren Icon auslesen (Problem)

Offene Frage von "delphinia"
Ein Thema von delphinia · begonnen am 15. Aug 2008 · letzter Beitrag vom 16. Aug 2008
Antwort Antwort
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#1

Dateitypen und deren Icon auslesen (Problem)

  Alt 15. Aug 2008, 22:51
Servus,

eines vorweg, wie ich dateitypen und deren Icons auslese ist mir bekannt ABER
es gibt Dateitypen die NICHT auf normalen Wegen angesprochen werden zb: Normaler weg
.txt -> txtfile
HKEY_CLASSES_ROOT\txtfile\DefaultIcon
Hier steht das Icon so weit so gut!


ABER zum Beispiel das Programm Alcohol 120% macht es anders nur wie?

Das der Eintrag für den Typen CCD
Code:
[HKEY_CLASSES_ROOT\AlcoholImageFile]
@=""
"EditFlags"=dword:00000000

[HKEY_CLASSES_ROOT\AlcoholImageFile\DefaultIcon]
@="%1"

[HKEY_CLASSES_ROOT\AlcoholImageFile\ShellEx]

[HKEY_CLASSES_ROOT\AlcoholImageFile\ShellEx\ContextMenuHandlers]

[HKEY_CLASSES_ROOT\AlcoholImageFile\ShellEx\ContextMenuHandlers\AlcoholShellEx]
@="{32020A01-506E-484D-A2A8-BE3CF17601C3}"

[HKEY_CLASSES_ROOT\AlcoholImageFile\ShellEx\IconHandler]
@="{32020A01-506E-484D-A2A8-BE3CF17601C3}"


Habe herausgefunden mit hilfe des Explorers das eine DLL für die Icons per regsvr32 registriert wurde. Deregistriere ich diese File, kann auch der Explorere das icon zum besagten Typen nicht anzeigen...

Kann mir aber nun jemand erkläre wie das geht?
Wie ich das nutzten kann?
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Dateitypen und deren Icon auslesen (Problem)

  Alt 15. Aug 2008, 22:54
Es wird eine ShellExtension verwendet
Markus Kinzler
  Mit Zitat antworten Zitat
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Dateitypen und deren Icon auslesen (Problem)

  Alt 15. Aug 2008, 23:09
Hmm sowwit wie es heisst war ich auch schon!
Nur wie kann ich ein solches Icon ausgebe in meinem IconChange?


Es geht mit aber nicht um einen EIntrag im Menü des Exploreres sonder um die Icons der Dateitypen die irgendwie damit zusammen hängen!
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#4

Re: Dateitypen und deren Icon auslesen (Problem)

  Alt 16. Aug 2008, 08:53
Hier im Forum suchenSHGetFileInfo enthält alles, was du benötigst.
  Mit Zitat antworten Zitat
extrem

Registriert seit: 27. Mai 2008
72 Beiträge
 
#5

Re: Dateitypen und deren Icon auslesen (Problem)

  Alt 16. Aug 2008, 09:12
...Icons für Dateiverknüpfungen herausfinden
  Mit Zitat antworten Zitat
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Dateitypen und deren Icon auslesen (Problem)

  Alt 16. Aug 2008, 09:29
NICHT verknüpfungen! Sondern Typen!
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Dateitypen und deren Icon auslesen (Problem)

  Alt 16. Aug 2008, 09:32
Zitat von MathiasSimmack:
Hier im Forum suchenSHGetFileInfo enthält alles, was du benötigst.
DAS ist mmir klar, das ich es damit bekommen könnte!
ABer es geht ja auch dann ums ändern des Icons! Oder kann ich dies dann auf normalen Wege tun?
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Dateitypen und deren Icon auslesen (Problem)

  Alt 16. Aug 2008, 10:14
Es geht NICHT mit -> SHGetFileInfo... es wird mir dann KEIN Icon angezeigt bzw das Windows Icon für nicht definierte Typen!
Wenn ich dann im Gegensatz es mit der Endung TXT versuche wird mir das Icon angezeigt

Delphi-Quellcode:
procedure GetAssociatedIconEx(const Filename: string; Icon: TIcon);
var
  SHFileInfo: TSHFileInfo;
begin
  FillChar(SHFileInfo, SizeOf(TSHFileInfo), 0);
  if (SHGetFileInfo(PChar(Filename), FILE_ATTRIBUTE_NORMAL, SHFileInfo, SizeOf(TSHFileInfo), SHGFI_ICON or SHGFI_USEFILEATTRIBUTES) <> 0) then
  try
    Icon.Handle := CopyIcon(SHFileInfo.hIcon);
  finally
    DestroyIcon(SHFileInfo.hIcon);
  end;
end;

// GEHT
procedure TExtMan_form.FlatButton1Click(Sender: TObject);
begin
  GetAssociatedIconEx('Test.txt', Icon.Picture.Icon);
end;

// GEHT NICHT
procedure TExtMan_form.FlatButton2Click(Sender: TObject);
begin
  GetAssociatedIconEx('Test.ccd, Icon.Picture.Icon);
end;
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
extrem

Registriert seit: 27. Mai 2008
72 Beiträge
 
#9

Re: Dateitypen und deren Icon auslesen (Problem)

  Alt 16. Aug 2008, 12:30
Delphi-Quellcode:
uses
  ActiveX;

...

procedure GetAssociatedIconEx(const Filename: string; Icon: TIcon);
var
  SHFileInfo: TSHFileInfo;
begin
  FillChar(SHFileInfo, SizeOf(TSHFileInfo), 0);
  if (SHGetFileInfo(PChar(Filename), FILE_ATTRIBUTE_NORMAL, SHFileInfo, SizeOf(TSHFileInfo), SHGFI_ICON or SHGFI_USEFILEATTRIBUTES) <> 0) then
  try
    Icon.Handle := CopyIcon(SHFileInfo.hIcon);
  finally
    DestroyIcon(SHFileInfo.hIcon);
  end;
end;

procedure TExtMan_form.FlatButton2Click(Sender: TObject);
begin
  GetAssociatedIconEx('Test.ccd', Icon.Picture.Icon);
end;

...

initialization
  CoInitialize(nil);

finalization
  CoUnInitialize;

end.
Versuche es mal mit CoInitialize, dann geht es bei mir wenn man die unit ActiveX mit einbindet.
  Mit Zitat antworten Zitat
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Dateitypen und deren Icon auslesen (Problem)

  Alt 16. Aug 2008, 12:39
Jo so geht es tatsächlich!
WAS ist daran nun soo viel besser? Was passiert da nun?

Danke erstmal. So wie verhält es sich mit dem Ändern des Icons? Das geschieht dann auf normalen Wege?
DefaulIcon Eintrag in der Registry?
Doreen
Gruss Doreen
  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 20:52 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