Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Desktop-Icons von Delphi-Programmen verschwinden (https://www.delphipraxis.net/190628-desktop-icons-von-delphi-programmen-verschwinden.html)

Jumpy 21. Okt 2016 10:23

Desktop-Icons von Delphi-Programmen verschwinden
 
Hallo,

ich habe ein seltsames Phänomen bei meinem Windows 7 Rechner:
Auf dem Desktop liegen Desktop-Links zu mit Delphi geschriebenen Programmen, die auf einem Netzlaufwerk liegen. Das Icon der Links entspricht wie gewohnt dem des Programmes.

Es kommt aber sehr oft vor (z.B. mach der Installation eines Programmes o.ä.) das diese Icons verschwinden und durch so ein Windows-Standard-Ding ersetzt werden. Um diese wieder zu bekommen, muss ich den Icon-Cache löschen und den Explorer neu starten. Ist kein Problem aber lästig.

Die Frage ist nur, woher das kommt? Warum verschwinden die Icons der Desktop-links nur bei den Delphi-Programmen? Haben wir die Icons irgendwie falsch erstellt/eingebunden?

In den Delphi-Programmen wurden die Icons einfach in den Projekt-Optionen eingebunden.

milo 21. Okt 2016 11:43

AW: Desktop-Icons von Delphi-Programmen verschwinden
 
Schau mal bei Microsoft unter "Windows 7, Icons verschwinden" nach. Es handelt sich hier nicht um ein Phänomen von Delphi Programmen, sondern um ein Windows 7 Problem mit Verknüpfungen von Programmen / Dateien auf einem Netzlaufwerk.
Bei meinen Kunden ist es auch schon häufiger passiert, dass diese Symbole komplett verschwinden.

Gruß :D Michael

stahli 21. Okt 2016 12:27

AW: Desktop-Icons von Delphi-Programmen verschwinden
 
Ich hatte irgendwo im Netz mal eine Batch gefunden, die die Icons wiederhergestellt hat.
Ggf. kann ich das nochmal raussuchen...

sakura 21. Okt 2016 12:31

AW: Desktop-Icons von Delphi-Programmen verschwinden
 
Allgemein übliches Command, um unter Windows den Icon Cache zu löschen:
Code:
ie4uinit.exe -ClearIconCache
.

...:cat:...

einbeliebigername 21. Okt 2016 12:38

AW: Desktop-Icons von Delphi-Programmen verschwinden
 
Hallo,

ich habe mir da ein Powershellskript gebastelt. Ob die Anleitung, auf dem das basiert, richtig war, weiß ich nicht. Benutzung auf eigene Gefahr.

Für Windows 7:
Code:
Get-Process explo* | foreach { 
  $_.kill()
  $_.WaitForExit()
}

(Get-Item ($env:LOCALAPPDATA+ "\IconCache.db") -Force).Delete()

explorer.exe
einbeliebigername.

Jumpy 21. Okt 2016 12:53

AW: Desktop-Icons von Delphi-Programmen verschwinden
 
Ich sag ja nicht, dass ich die Icons nicht wiederholen kann. Hier meine Batch dafür, die ich irgendwo im Netz gefunden habe:

Code:
@echo off
taskkill /im explorer.exe /f
del %userprofile%\AppData\local\iconcache.db /a
explorer.exe
Ich war nur Neugierig bzgl. der Ursache, weil ich den Eindruck hatte, dass das nur unsere eigenen Progamme betraf, schon im Zusammenhang Netzlaufwerk. Fremde über Netz eingebundene Programme hatten das soweit ich mich erinnere nicht. Muss ich mal sehen, wenn das das nächste mal vorkommt.

Werde mal milos Vorschlag folgen und bei MS suchen.

himitsu 21. Okt 2016 13:06

AW: Desktop-Icons von Delphi-Programmen verschwinden
 
Windows hat paar Aufräumfunktionen, die aber standardmäßig deaktiviert sind, oder zumindestens eine "soll ich wirklich löschen"-Frage stellen.

* länger nicht angeklickte Icons werden gern entfernt
* Icons/Links zu nicht existierenden Programmen werden entfernt (da kommt eigentlich 'ne Frage, wenn man das Programm starten will)
Letzteres vorallem bei SUBST- und Netzlaufwerken.

* aber beim Explorer (Desktop ist ja och 'nen Explorer) war mir jetzt aufgefallen, dass Windows 10 nicht mehr beim Löschen fragt, wenn man "ausversehn" [Entf] erwischt.

nahpets 21. Okt 2016 13:10

AW: Desktop-Icons von Delphi-Programmen verschwinden
 
Die Ursache ist (vermutlich) ganz einfach:

Bei Delphiprogrammen ist das Icon in der Exe, fehlt die Exe, weil das Netzlaufwerk nicht verfügbar ist, so wird ein "Standardicon" genommen.

Etliche Icons werden aber nicht aus 'ner Exe entnommen, sondern aus irgendeiner Systemdatei. Diese Icons gehen nicht verloren, auch wenn die zugeordnete Exe (sporadisch) nicht verfügbar ist, da die Datei, die das Icon enthält, weiterhin verfügbar ist.

Hat der Explorer nun aber mal ein Icon nicht finden können (weil Exe auf Netzlaufwerk nicht erreichbar) und hat nun ein Standardicon genommen, dann merkt er sich das halt und man sieht nun "auf Dauer" dieses Icon.
Nur wenn (nach mir nicht bekannten Kriterien) der Link (und/oder der Iconcache) aktuallisiert wird und dabei festgestellt wird, dass die Exe auf dem Laufwerk verfügbar ist, so wird wieder das richtige Icon angezeigt.

(So scheint das Verhalten des Explorers vermutlich zu sein, einen fundierten Beweis für diese meine Behauptung, kann ich nicht liefern. ;-))

Aber dieses Verhalten kenne ich, seit ich Windows und externe Laufwerke bzw. Netzlaufwerke kenne. Und das ist schon einige Windowsversionen her ;-)

Aviator 21. Okt 2016 13:24

AW: Desktop-Icons von Delphi-Programmen verschwinden
 
Zitat:

Zitat von himitsu (Beitrag 1351636)
Windows hat paar Aufräumfunktionen, die aber standardmäßig deaktiviert sind, oder zumindestens eine "soll ich wirklich löschen"-Frage stellen.

[...]

* Icons/Links zu nicht existierenden Programmen werden entfernt (da kommt eigentlich 'ne Frage, wenn man das Programm starten will)
Letzteres vorallem bei SUBST- und Netzlaufwerken.

Das stimmt so nicht ganz. Windows hat Aufräumfunktionen die im Hintergrund durch die Aufgabenplanung durchgeführt werden (Maintenance Scripts). So werden Icons deren Programme nicht mehr verfügbar sind (sei es durch ein noch fehlendes Netzlaufwerk beim Start oder sonstigem) einfach unwiderruflich gelöscht wenn die Anzahl größer 4 ist. Und hierbei spielt es keine Rolle, ob die Programme zwischenzeitlich mal wieder erreichbar waren.

Man kann diese Zahl "4" manuell hoch setzen auf 50 oder 100 oder XY. Dann passiert es erst wieder, wenn diese Anzahl erreicht ist. Aber um die Zahl ändern und das Script zu speichern, muss man zuerst mal den Besitz übernehmen und sich die Rechte für die Datei geben und dann nach der Bearbeitung wieder umgekehrt herum.

Zitat:

Zitat von himitsu (Beitrag 1351636)
* aber beim Explorer (Desktop ist ja och 'nen Explorer) war mir jetzt aufgefallen, dass Windows 10 nicht mehr beim Löschen fragt, wenn man "ausversehn" [Entf] erwischt.

Auch das kann man einstellen. Stört mich auch extrem, dass das jetzt Standard ist. Einfach rechte Maustaste auf den Papierkorb --> Eigenschaften --> Haken bei "Dialog zur Bestätigung des Löschvorgangs anzeigen" reinmachen.

EDIT: In unserer Firma habe ich bspw. per GPO diesen Haken für alle erzwungen. Nicht das jemand plötzlich wichtige Dateien von einem Laufwerk löscht und keine Nachfrage kommt. Das ist schneller passiert als manche denken. Und bei einem Netzlaufwerk gibt es keinen Papierkorb.

Bernhard Geyer 21. Okt 2016 13:30

AW: Desktop-Icons von Delphi-Programmen verschwinden
 
Windows hat vermutlich schon seit Win2000 in diesem Bereich Fehler das der Icon-Cache nicht richtig funktioniert.
Und ich vermute das MS das niemals fixen wird.

Christian Seehase 21. Okt 2016 13:44

AW: Desktop-Icons von Delphi-Programmen verschwinden
 
Moin Zusammen,

als Ergänzung zu Stephans Beitrag:

Über eine Group-Policy kann man erzwingen, das Windows beim Starten auf die Verfügbarkeit des Netzwerks wartet.
Damit sollte das Problem zu beheben sein.
(Computer Konfiguration\Administrative Vorlagen\System\Anmeldung\Immer auf Netzwerk warten)
Zumindest für XP hat Microsoft dokumentiert, dass ein Rechner in einer Domäne immer auf das Netzwerk wartet,
was sich aber als nicht korrekt erwiesen hat.

Aviator 21. Okt 2016 14:21

AW: Desktop-Icons von Delphi-Programmen verschwinden
 
Zitat:

Zitat von Christian Seehase (Beitrag 1351646)
Zumindest für XP hat Microsoft dokumentiert, dass ein Rechner in einer Domäne immer auf das Netzwerk wartet,
was sich aber als nicht korrekt erwiesen hat.

Wie denn auch? Wenn mal das Netzwerk nicht verfügbar wäre könnte ich mich nicht mehr anmelden?!

Außerdem gibt/gab es öfters Probleme mit der Vertrauensstellung in einer Domain und dann half immer nur noch das ziehen des Netzwerksteckers um sich wenigstens wieder anmelden zu können. Dann raus aus der Domain und wieder rein in die Domain und dann ging das auch wieder.

himitsu 21. Okt 2016 14:24

AW: Desktop-Icons von Delphi-Programmen verschwinden
 
Bei uns wird per Batch im Autostart bei Jedem ein SUBST-Laufwerk verbunden.
Da kann Windows schlecht drauf warten, da es erst nach dem Start verbunden wird.

Aber Server 2012 und 2008 haben meine Icons (an Taskleiste gepinnt) nur nach Rückfrage gelöscht und ab und an gibt es Probleme mit dem falschen Icon.
Wenn die EXE nicht kompiliert wurde und ich zwischendurch Feierabend gemacht hab.

Luckie 21. Okt 2016 18:49

AW: Desktop-Icons von Delphi-Programmen verschwinden
 
Zitat:

Zitat von Aviator (Beitrag 1351643)
EDIT: In unserer Firma habe ich bspw. per GPO diesen Haken für alle erzwungen. Nicht das jemand plötzlich wichtige Dateien von einem Laufwerk löscht und keine Nachfrage kommt. Das ist schneller passiert als manche denken. Und bei einem Netzlaufwerk gibt es keinen Papierkorb.

1. Also mein NAS hat ein Papierkorb
2. Sollte es noch Backups geben.
So tragisch wäre das also auch nicht.

Aviator 21. Okt 2016 19:15

AW: Desktop-Icons von Delphi-Programmen verschwinden
 
Zitat:

Zitat von Luckie (Beitrag 1351671)
Zitat:

Zitat von Aviator (Beitrag 1351643)
EDIT: In unserer Firma habe ich bspw. per GPO diesen Haken für alle erzwungen. Nicht das jemand plötzlich wichtige Dateien von einem Laufwerk löscht und keine Nachfrage kommt. Das ist schneller passiert als manche denken. Und bei einem Netzlaufwerk gibt es keinen Papierkorb.

1. Also mein NAS hat ein Papierkorb
2. Sollte es noch Backups geben.
So tragisch wäre das also auch nicht.

Ich weiß ja nicht and welche Datenmengen du denkst, aber wenn mal jemand einen Ordner löscht der mehrere Gigabytes groß ist, dann dauert es auch schonmal eine Zeit lang bis die Daten wiederhergestellt sind. Und wenn es dann ein Ordner ist, in dem aktiv gearbeitet wird, dann ist es umso schlimmer. Weil die geänderten Daten sind dann nicht auf einer Datensicherung vorhanden.

Ich muss in unserer Firma in größeren Dimensionen denken, da ich nicht nur Programmierer, sondern auch EDV-Administrator bin. Als normaler Programmierer muss man sich i.d.R. nicht damit rumschlagen.

Und ein NAS ist etwas anderes als ein Debian oder Windows Fileserver. Dort gibt es so etwas nicht. Ich meine zwar mal gelesen zu haben, dass auf den neueren Windows Serverversionen so eine Funktion zur Verfügung gestellt wird, habe das aber noch nicht ausprobiert. Und ich meinte auch gelesen zu haben, dass das dann alles extrem langsam wird und relativ viel Speicher wegnimmt.

Aber das jetzt ohne Gewähr. Da müsste ich mich auch nochmal genauer einlesen.


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