Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Nocheinmal Ordner-Icons ändern (https://www.delphipraxis.net/2041-nocheinmal-ordner-icons-aendern.html)

theomega 4. Jan 2003 15:55


Nocheinmal Ordner-Icons ändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Vor ein Paar Monaten habe ich gefragt, die man die OrdnerIcons im Explorer für bestimmte Ordner ändern kann. Dabei hatte ich an einen API-Aufruf gedacht. Jetzt habe ich einen Code gefunden, in dem das ganze realisiert ist. Leider ist der code in C++. Würde sich evtl. trotzdem jemand mal den Code anschauen und mir sagen, ob sich der Code auch unter Delphi realisieren lassen würde? Ich habe den Code ienmal angehängt!

Danke

Angel333 4. Jan 2003 19:02

Wieso machst du es dir so kompliziert?
 
Wieso machst du es dir so kompliziert?
In jedem Ordner ist doch eine Versteckte INI...
Die kann man so umschreiben das man ein beliebiges Ordner-Icon hat

Scorpion 4. Jan 2003 19:13

Hi,

der code sollte dir helfen...

Code:
...
Iconindex, Iconpfad, Ordnerpfad, Ordner;
attributes: word;
f1,f2: textfile;
...

procedure TForm7.Iconanpassen(Directory:String);
begin
assignfile(f1,Directory +'\desktop.ini');
assignfile(f2,Directory +'\desktop.txt');
rewrite(f2);
if Fileexists(Directory +'\desktop.ini') then
  begin
   reset(f1);
   repeat
     readln(f1,zeile);
     writeln(f2,zeile);
    until (eof(f1)) or (zeile='[.ShellClassInfo]');
   if eof(f1) then
    begin
     writeln(f2,'[.ShellClassInfo]');
     writeln(f2,'');
    end
   else
    begin
     readln(f1,zeile);
     writeln(f2,zeile);
    end;
  end
else
 begin
  writeln(f2,'[.ShellClassInfo]');
  writeln(f2,'');
 end;
writeln(f2,'Iconfile='+ IconPfad);
writeln(f2,'IconIndex='+ iconindex);
if Fileexists(Directory +'\desktop.ini') then
 begin
  closefile(f1);
  DeleteFile(Directory +'\desktop.ini')
 end;
closefile(f2);
RenameFile(Directory +'\desktop.txt',Directory +'\desktop.ini');
FileSetAttr(Directory + '\desktop.ini', fahidden);
//symbol(dcb,txtlaufwerk);

end;
Gruss
Nico

theomega 4. Jan 2003 20:06

Genau diesen Code wollte ich aber vermeiden, weil er einen Internetexplorer voraussetzt.
Kann sich nicht jemand den Code von oben anschauen und ihn mir in Delphi geben? :angle2:

Christian Seehase 4. Jan 2003 20:15

Moin The Omega,

ich hab' mal kurz in die Sourcen reingesehen.

Erster Eindruck:
Das kommt auch nicht weniger ohne IE aus wie die Desktop.ini.

Wo siehst Du eigentlich in Scorpions Source den IE?

theomega 4. Jan 2003 21:14

Ich seh ihn nicht, weiß aber, das diese Funktion den IE mit installiertem Active-Desktop benötigt!


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 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