Italia
Foro

Verzeichnis Icon ändern

 
- Page 1 -



Julian
Schmidt
Ciao,
würd gerne per XProfan das Icon von einen Verzeichnis ändern.
Bin leider noch nicht in der Shell32.dll fündig geworden. Und bräuchte Aiuto bei der Umsetzung.

Saluto
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
24.05.2013  
 



 
- Page 2 -



Julian
Schmidt
Ok, das scheint zu funktionieren.

Allerdings scheint Windows trotzdem meine Desktop.ini nicht anzunehmen.

Schau mal. [...] 
Kommen da bei dir die Ordner-Icons nach dem Ausführen.

814 kB
Hochgeladen:25.05.2013
Downloadcounter206
Download
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
25.05.2013  
 



Richtig, aktualisiert auch bei mir (XP) nicht.

Habe mal RegDump gemacht vor und nach Cambiamento -

scheint in der Reg sich dadurch nichts zu ändern.

Aber schau mal hier steht was: [...]  [...] 
 
25.05.2013  
 




Julian
Schmidt
Klappt immernoch nicht richtig.
KompilierenMarkierenSeparieren
Def PathMakeSystemFolder(1) !"Shlwapi", "PathMakeSystemFolderA"
Def DateiName(1) SubStr$(@$(1),-1,"\\")
Def DateiEndung(1) SubStr$(@$(1),-1,".")
Def DateiPfad(1) Translate$(@$(1),("\\" + DateiName(@$(1))),"")+"\\"
Var Programm$=Par$((Upper$(DateiName(Par$(0)))="PROFAN.EXE") or (Upper$(DateiName(Par$(0)))="XPROFAN.EXE"))
Declare Folder$, Icon$, DesktopIni$
Var l&=Create("List", 0)
ClearList
ChDir DateiPfad(Programm$)
AddFiles *"*.ICO"
MoveListToHandle(l&)

whileloop 1, Getcount(l&)

    Icon$=GetString$(l&,&loop-1)
    Folder$=DateiPfad(DateiPfad(Programm$)+Trim$(Mid$(Icon$,Len(DateiPfad(Programm$)+"\\Icons\\"),9999)))
    DesktopIni$ = Folder$ + "Desktop.ini"

    Ifnot DirExists(Folder$)

        MkDir Folder$

    EndIf

    If DirExists(Folder$)

        PathMakeSystemFolder(Folder$)

        If FileExists(DesktopIni$)

            Erase DesktopIni$

        EndIf

        WriteIni DesktopIni$,".ShellClassInfo","IconResource"=Icon$+", 0"
        WriteIni DesktopIni$,"ViewState","Mode"=""
        WriteIni DesktopIni$,"ViewState","Vid"=""
        WriteIni DesktopIni$,"ViewState","FolderType"="Generic"
        SetFAttr DesktopIni$, $06

    EndIf

EndWhile

 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
25.05.2013  
 



Schau mal die APIs liefern bei mir 0, auch immer den Returnwert von Apis beachten.

MS schreibt: Returns nonzero if successful, or zero otherwise.

Strings sind leider auch nicht gleich Strings. Besonders Roland seine Strings oder
eher durch die Art und Weise wie er sie verwaltet, sind nicht immer per Übergaben
an APIs brauchbar z.B. wenn die GC ( [...]  ) zu presto zuschlägt da nicht selbst organisiert.

Da helfen nProc-Strings oder eher die APIs in nProcs rufen, da nProcs eine echte
eigene Stringverwaltung inne haben und nativ Strings erzeugen ganz reine und feine
wie M$ sie wünscht.
KompilierenMarkierenSeparieren
 {$cleq}
 {$compiler c:\dev\xprofan11\11}
 {$runtime c:\dev\xprofan11\11}
Def GetFileAttr(1) !"Kernel32", "GetFileAttributesA"
Def DateiName(1) SubStr$(@$(1),-1,"\\")
Def DateiEndung(1) SubStr$(@$(1),-1,".")
Def DateiPfad(1) Translate$(@$(1),("\\" + DateiName(@$(1))),"")+"\\"
Var Programm$=Par$((Upper$(DateiName(Par$(0)))="PROFAN.EXE") or (Upper$(DateiName(Par$(0)))="XPROFAN.EXE"))
Declare Folder$, Icon$, DesktopIni$
Var l&=Create("List", 0)
ClearList
ChDir DateiPfad(Programm$)
AddFiles *"*.ICO"
MoveListToHandle(l&)

whileloop 1, Getcount(l&)

    Icon$=GetString$(l&,&loop-1)
    Folder$=DateiPfad(DateiPfad(Programm$)+Trim$(Mid$(Icon$,Len(DateiPfad(Programm$)+"\\Icons\\"),9999)))
    DesktopIni$ = Folder$ + "Desktop.ini"

    Ifnot DirExists(Folder$)

        MkDir Folder$

    EndIf

    If DirExists(Folder$)

        print folder$
        print "A:";nSetFileAttr(Folder$, $4)

        If FileExists(DesktopIni$)

            Erase DesktopIni$

        EndIf

        assign #1,DesktopIni$
        rewrite #1
        /*
        WriteIni DesktopIni$,".ShellClassInfo","IconResource"=Icon$+", 0"
        WriteIni DesktopIni$,"ViewState","Mode"=""
        WriteIni DesktopIni$,"ViewState","Vid"=""
        WriteIni DesktopIni$,"ViewState","FolderType"="Generic"
        */
        print #1,"[.ShellClassInfo]"
        print #1,"IconFile=%SystemRoot%\\system32\\SHELL32.dll"
        print #1,"IconIndex=15"
        print #1,"[ViewState]"
        print #1,"FolderType=Generic"
        close #1
        nSetFileAttr(DesktopIni$, $06)
        nSetFileAttr(Folder$, $4)

    EndIf

EndWhile

waitinput

nProc nSetFileAttr(string s,long m){

    return SetFileAttributesA(s,
25.05.2013  
 




Julian
Schmidt
Cool, klappt.
Naja zumindest wenn der Ordner leer ist. Wenn er gefüllt ist geht es nicht. Ist das von Microschrott nicht vorgesehen oder bekommt man das auch noch irgendwie hin?
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
25.05.2013  
 



Ich weiß es ehrlich gesagt nicht und fürchte, da hilft nur Probieren.
 
25.05.2013  
 




Julian
Schmidt
Ich denke das geht nicht. Wurde auch hier geschrieben. [...] 
Hat jemand ein bessere Idee als einen Neuen Ordner zu erstellen dort die Desktop.ini abzulegen, Rechte zu setzen und anschließend alle File und Unterordner in den neuen Ordner zu verschieben.
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
25.05.2013  
 



Ja, ich! Nicht kopieren sondern verschieben!

Spätestens wenn sich eine File nicht verschieben lässt ists aber auch wieder
unlustig. Ergo ganze Desktop.ini-Gedöns nur per neue Ordner die man z.B. selbst
erstellt.
 
25.05.2013  
 



Ja, ich! Nicht kopieren sondern verschieben!

Spätestens wenn sich eine File nicht verschieben lässt ists aber auch wieder
unlustig. Ergo ganze Desktop.ini-Gedöns nur per neue Ordner die man z.B. selbst
erstellt.

Gehen müsste es aber dennoch immer irgendwie denn der Explorer tät ja so!
 
25.05.2013  
 




Julian
Schmidt
iF (25.05.13)

Gehen müsste es aber dennoch immer irgendwie denn der Explorer tät ja so!


Jup, nur wie findet man raus wie der Explorer das macht?

[OFFTOPIC]Doppelpost ^^[/OFFTOPIC]
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
25.05.2013  
 



Könnte man API-Mon ansetzen aber das wir speziell beim Explorer vielleicht
tendentiell gewissermassen zum Horror.
 
25.05.2013  
 




Julian
Schmidt
Echt schade. Hab wirklich gehofft das man das irgendwie hinbekommt.

Übrings. Mit diesen Registry-Hack[...]  kann man statt Readonly auch System zu Kennzeichnung von
Individualisierten Ordnern verwenden. Evtl. nicht mit Win7 kompatible.
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
25.05.2013  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

21.595 Views

Untitledvor 0 min.
Walter01.02.2018
Nico Madysa21.02.2014
Tommy03.01.2014
Heiko Dix22.11.2013
Di più...

Themeninformationen

Dieses Thema hat 2 subscriber:

Julian Schmidt (13x)
iF (11x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie