Entwickler-Ecke
Dateizugriff - Ordnerhintergrund mit desktop.ini festlegen
Bergmann89 - Di 01.01.08 21:53
Titel: Ordnerhintergrund mit desktop.ini festlegen
HI,
ich hab jetzt rausgefunden, das man in der Desktop.ini von den einzellenen Ordnern einen Hintergrund für
den Ordner festlegen kann. Jetzt hab ich mir n Prog geschrieben, was die Desktop.ini editiert bzw. neu
schreibt, damit ich in den Ordnern Hintergrundbilder hab. Aber das wird nur in manchen Ordnern übernommen,
kann sein das ich da noch was anderes festlegen muss?!
Wenn jemand bescheid weiß, kann er mir dann bitte helfen, ich zermürb mir schin n ganzen tag den Kopf^^
MfG & Thx Bergmann.
Moderiert von jasocul: Topic aus Windows API verschoben am Di 01.01.2008 um 22:24Moderiert von Narses: Topic aus Off Topic verschoben am Do 03.01.2008 um 12:49
Bergmann89 - Mi 02.01.08 21:29
HI...
Ne, sind irgendwelche Ordner, die nich im zusammenhang mit
Windows stehen, kann auch n neuen ordner erstellen,mit dem
das dann nich geht. Aber wenn ich dann auf Eigenschaften
--> Anpassen --> Sysbol ändern klicke und ein beliebiges
Sysmbol auswähle, dann geht der hintergrund, sprich die
Desktop.ini wird dann erkannt. Also muss er ja irgendwas
mit dem ordmner gemacht haben! Naja ich wer mir ma den
Link angucken, THX
Fabian E. - Mi 02.01.08 23:04
Hast du den ordner in einen sytemordner umgewandelt?
wenn nicht dann geht das nicht...
gruß
Bergmann89 - Do 03.01.08 05:05
HI,
wenn ich dem Ordner n neues Icon geb, dann wird das doch kein Systemodner, oder?!
Weil wenn das Symbol einmal geändert wurde, dann geht das!
MfG Bergmann.
Yogu - Do 03.01.08 12:39
Bergmann89 hat folgendes geschrieben: |
wenn ich dem Ordner n neues Icon geb, dann wird das doch kein Systemodner, oder?! |
Da haste Recht, deswegen musst du ja den Ordner in einen Systemordner umwandeln, weil das nicht automatisch passiert.
Bergmann89 hat folgendes geschrieben: |
Weil wenn das Symbol einmal geändert wurde, dann geht das! |
Wenn du das Symbol einmal mit dem System-Dialog geänder hast, ist der Ordner ja ein Systemordner. Also kannst du auch die desktop.ini-Datei verändern, und das Symbol ändert sich.
DaKirsche - Do 03.01.08 12:51
Hey Bergmann89,
mal den betreffenden Abschnitt aus meinem Source:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44:
| procedure TForm1.SpeedButton4Click(Sender: TObject); var tmpINI: TIniFile; begin if DirectoryExists(sUsedDirectory) then begin
tmpINI:= TIniFile.Create(sUsedDirectory+'Desktop.ini'); try with tmpINI do begin if s_NewIconFile<>'' then begin WriteString('.ShellClassInfo','IconFile',s_NewIconFile); WriteInteger('.ShellClassInfo','IconIndex',IconIndex); end; if Edit2.Text<>'' then WriteString('.ShellClassInfo','InfoTip',Edit2.Text);
WriteString('ExtShellFolderViews','Default','{BE098140-A513-11D0-A3A4-00C04FD706EC}'); if s_NewBackground<>'' then begin WriteString('{BE098140-A513-11D0-A3A4-00C04FD706EC}','IconArea_Image',s_NewBackground); end; WriteInteger('{BE098140-A513-11D0-A3A4-00C04FD706EC}','Attributes',1); if ColStr<>'' then WriteString('{BE098140-A513-11D0-A3A4-00C04FD706EC}','IconArea_Text',ColStr); end; finally tmpINI.UpdateFile; if Length(PChar(Edit1.text + 'Desktop.ini')) > 3 then begin SetFileAttributes(PChar(Copy( PChar(sUsedDirectory + 'Desktop.ini'), 1,LastChar(sUsedDirectory + 'Desktop.ini', '\')-1)), FILE_ATTRIBUTE_SYSTEM); end; tmpINI.Free; SetFileAttributes(PChar(sUsedDirectory + 'Desktop.ini'),FILE_ATTRIBUTE_HIDDEN);
end; if FileExists(sUsedDirectory+'Desktop.ini') then ShowMessageDlgEx('Der Speichervorgang war erfolgreich!','Speichern erfolgreich',101,MB_OK) else ShowMessageDlgEx('Speichern war leider nicht erfolgreich!'+sLineBreak+'Bitte versuchen Sie es noch einmal!','Speichern fehlgeschlagen',101,MB_OK); end else ShowMessageDlgEx('Das angegebene Verzeichnis existiert nicht!','ungültiges Verzeichnis',101,mb_ok); end; |
Du musst die INI-File zu einem Systemfile machen, damit das übernomen wird.
MFG
DaKirsche
Bergmann89 - Sa 05.01.08 16:10
HI,
habs hinbekommen, nur noch eine Frage, warum überprüfst du
ob der Pfad länger als 3 zeichen ist, allein "desktop.ini"
hat schon mehr als 3 Zeichen! also ist die Aussage immer war!?
MfG & Thx Bergmann.
Yogu - So 06.01.08 13:03
Er will damit überprüfen, ob sein Delphi noch funktioniert :mrgreen:
Ne, im Ernst, das würde mich allerdings auch mal interessieren! Oder setzt PChar bei dir manchmal aus!?
Silas - So 06.01.08 13:11
Soweit ich das versteh, will er damit überprüfen, ob es sich um einen Ordner und nicht um ein Laufwerk handelt ("C:\" oder "C:" wären damit ausgeschlossen). 'desktop.ini' muss natürlich aus der Abfrage raus.
DaKirsche - So 06.01.08 15:14
Oh... :gruebel: Naja...was das soll weiss ich auch im Moment nicht...wie gut, dass es Leute gibt, die sich den Quelltext angucken....
Werde das mal Revue passieren lassen und mal überlegen, wozu die Abfrage da war^^
Aber das mit den Laufwerken klingt schon ziemlich sinnvoll :nixweiss:
Naja...danke für den Hinweis...ich grübel dannmal los :gruebel: :autsch:
MFG
DaKirsche
36779 - Mo 25.11.13 22:31
Hallo,
... fast 6 Jahre später
ich habe gerade das Problem versucht nur mit Boardmitteln über die Konsole zu lösen, bekomme die Attribute aber nicht so gesetzt. hat da jemand eine Idee? Die Attribute vom Verzeichnis werden nicht gesetzt und die Ini darin meldet: Systemdatei/versteckte Datei wird nicht zurück gesetzt.
Den Code habe ich auch gerade gefunden bei
http://edn.embarcadero.com/article/27508 von 2002, die Abfrage >3 Zeichen ist nur um Root-Verzeichnisse auszuschließen.
Grüße
edit: habs hinbekommen in der Konsole für alle Unterordner: for /d %%a in (e:\dir\*) do attrib +r "%%a"
# /r statt /d: rekursiv alle Unterebenen
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!