AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Icon/Text zu Dateierweiterung auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Icon/Text zu Dateierweiterung auslesen

Ein Thema von Nils_13 · begonnen am 6. Sep 2007 · letzter Beitrag vom 7. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

Icon/Text zu Dateierweiterung auslesen

  Alt 6. Sep 2007, 18:40
Hi,

ich möchte zu jeder beliebigen Datei die Beschreibung, welche im Explorer bei "Typ" steht auslesen. Wie geht das ?
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Text zu Dateierweiterung auslesen

  Alt 6. Sep 2007, 18:42
Hi,

hier wird gezeigt, wie man eine eigene Dateiendung registriert und dabei werden eben diese Daten angegeben. Du musst das ganze nur umdrehen und schon hast Du es
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#3

Re: Text zu Dateierweiterung auslesen

  Alt 6. Sep 2007, 19:02
Gute Idee, also so ?
Delphi-Quellcode:
function GetIcon(Extension : String): Boolean;
var Reg: TRegistry;
begin
  Result := False;
  if Extension <> 'then
  begin
    if Extension[1] <> '.then
      Extension := '.' + Extension;

    Reg := TRegistry.Create;
    try
      Reg.RootKey := HKEY_CLASSES_ROOT;
      if Reg.OpenKey(Extension, True) then
        if Reg.OpenKey('DefaultIcon', True) then
          Reg.ReadString('DefaultIcon'); // <-- das ist das Icon
    finally
      Reg.Free;
    end;
  end;
end;
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Text zu Dateierweiterung auslesen

  Alt 6. Sep 2007, 19:08
Moin Nils,

damit liest Du den Pfad zum Icon aus.

Übrigens gehört zu jedem erfolgreichen OpenKey auch ein CloseKey.
Ausserdem solletst Du mit ValueExists erst einmal prüfen, ob der Wert überhaupt da ist.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#5

Re: Text zu Dateierweiterung auslesen

  Alt 6. Sep 2007, 19:53
Ok:
Delphi-Quellcode:
if ValueExists('DefaultIcon') then
  Reg.ReadString('DefaultIcon');
Wie kommt man an das Icon denn ran ? Der Pfad ist nicht so gut, da viele Icons in Programmen stecken.


Ich hab den Titel mal geändert, ab jetzt: Icon und Text Aber Text ist sogar simpel, habe da noch was....
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

Re: Icon/Text zu Dateierweiterung auslesen

  Alt 6. Sep 2007, 20:26
Über ExtractAssociatedIcon oder so ähnlich aus der ShellAPI müsste es gehen. Da musst du dir halt eine Datei mit der Endung temporär erzeugen und die Funktion für diese Datei aufrufen.
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#7

Re: Icon/Text zu Dateierweiterung auslesen

  Alt 6. Sep 2007, 20:55
Das mit der Beschreibung ist doch nicht so leicht Ich konnte bis jetzt nichts regelmäßiges bei den verschiedenen Dateitypen finden.

Das mit dem Icon wird aber klappen, denke ich. Edit: Mit den Icons gibt es das gleiche Problem....
  Mit Zitat antworten Zitat
jottkaerr

Registriert seit: 2. Jul 2007
Ort: Tuttlingen
81 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

Re: Icon/Text zu Dateierweiterung auslesen

  Alt 7. Sep 2007, 08:18
Hallo Nils,

nimm die Funktion SHGetFileInfo aus der Unit ShellAPI:

Delphi-Quellcode:
uses
  ShellAPI;

function GetFileIcon(const FileName: string; const Icon: TIcon; const FileMustExist: Boolean): Boolean;
var
  FI: TSHFileInfo;
  Attributes: DWORD;
  Flags: Word;
begin
  if FileMustExist then
  begin
    Attributes := 0;
    Flags := SHGFI_ICON or SHGFI_LARGEICON;
  end
  else
  begin
    Attributes := FILE_ATTRIBUTE_NORMAL;
    Flags := SHGFI_USEFILEATTRIBUTES or SHGFI_ICON or SHGFI_LARGEICON;
  end;

  if SHGetFileInfo(PChar(FileName), Attributes, FI, SizeOf(FI), Flags) <> 0 then
  begin
    Icon.ReleaseHandle;
    Icon.Handle := FI.hIcon;
    Result := True;
  end
  else
    Result := False;
end;
Ein Aufruf mit

Delphi-Quellcode:
  if not GetFileIcon('*.pas', Image1.Picture.Icon, False) then
    ShowMessage('Default-Icon geladen');
lädt das große Icon, das Delphi-Quelltexten zugeordnet ist. Im Fehlerfall wird ein
Default geladen, wenn FileMustExist auf False steht. Steht FileMustExist auf True,
wird im Fehlerfall kein Icon geladen.

jkr
Jürgen Krämer
Sometimes I think the surest sign that intelligent life exists elsewhere
in the universe is that none of it has tried to contact us. (Calvin)
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#9

Re: Icon/Text zu Dateierweiterung auslesen

  Alt 7. Sep 2007, 18:21
Das ist sehr gut, danke Dann bleibt immernoch das Problem mit der Dateitypbeschreibung.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#10

Re: Icon/Text zu Dateierweiterung auslesen

  Alt 7. Sep 2007, 19:05
Guckst du mal ins ListView-Sample von Luckies Win32-Tutorials. Steht da drin.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:34 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