Autor |
Beitrag |
Bergmann89
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Di 01.01.08 21:53
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
|
|
DrRzf
Beiträge: 260
Win XP Prof
D7 Enterprise
|
Verfasst: Di 01.01.08 22:57
nur Spezielle Ordner woran du scheiterst ?
SystemOrdner oder sowas ?
EDIT:
guck mal da. ist das selbe projekt, villeicht kanst du dich ja mit dem author kurzschliessen.
www.delphi-forum.de/...ighlight=desktop+ini
_________________ rein statistisch gesehen darf man keiner statistik trauen die man nicht selbst gefälscht hat.
|
|
Bergmann89
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: 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
Zuletzt bearbeitet von Bergmann89 am Do 03.01.08 05:06, insgesamt 1-mal bearbeitet
|
|
Fabian E.
Beiträge: 554
Windows 7 Ultimate
Visual Studio 2008 Pro, Visual Studion 2010 Ultimate
|
Verfasst: Mi 02.01.08 23:04
Hast du den ordner in einen sytemordner umgewandelt?
wenn nicht dann geht das nicht...
gruß
|
|
Bergmann89
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: 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
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: 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
Beiträge: 187
Win XP Pro, SuSe Linux 7.3 - 10.2, Win 2k3 Server, Win 2000, Win NT 4.0
Delphi 2006 Pro, Java, HTML, SQL, PHP, CSS
|
Verfasst: Do 03.01.08 12:51
Hey Bergmann89,
mal den betreffenden Abschnitt aus meinem Source:
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
_________________ Die simpelsten Fehler sind meist die Schwersten...
|
|
Bergmann89
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: 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
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: So 06.01.08 13:03
Er will damit überprüfen, ob sein Delphi noch funktioniert
Ne, im Ernst, das würde mich allerdings auch mal interessieren! Oder setzt PChar bei dir manchmal aus!?
|
|
Silas
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: 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.
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
DaKirsche
Beiträge: 187
Win XP Pro, SuSe Linux 7.3 - 10.2, Win 2k3 Server, Win 2000, Win NT 4.0
Delphi 2006 Pro, Java, HTML, SQL, PHP, CSS
|
Verfasst: So 06.01.08 15:14
Oh... 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
Naja...danke für den Hinweis...ich grübel dannmal los
MFG
DaKirsche
_________________ Die simpelsten Fehler sind meist die Schwersten...
|
|
36779
Hält's aus hier
Beiträge: 1
|
Verfasst: 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 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
|
|
|