Carbonite Backup ist etwas wählerisch
Ein SpeedCommander-Anwender setzt die Software Carbonite Backup ein, mit der die zu sichernden Daten über das Internet in ein Backup-Center übertragen werden. Mit Hilfe von Overlay-Symbolen wird der Status gekennzeichnet. Ein grüner Punkt zeigt z.B. an, dass die Datei gesichert wurde. Mit einem gelben Punkt versehene Dateien werden gerade gesichert.
Soweit so gut, doch leider werden die Punkte nur im Explorer angezeigt, in SpeedCommander sind alle Dateien punktlos. Eigentlich gibt es dafür aber keinen Grund, da SpeedCommander die entsprechenden Overlay-Symbole ebenfalls bei der Shell anfragt und dann auch anzeigen sollte.
Im Debugger sah ich dann, dass beim Aufruf von IShellIconOverlay::GetOverlayIndex der Fehlercode E_FAIL zurückgegeben wird. Laut Dokumentation bedeutet dies, dass die übergebene PIDL ungültig ist. Zu erklären ist dies aber nicht, da alle anderen Overlay-Symbole ja korrekt ermittelt werden.
Aus Verzweiflung kam ich auf die dumme Idee, SpeedCommander.exe in Explorer.exe umzubenennen und aufzurufen. Danach sah ich das:
Die Darstellung der Overlay-Symbole von Carbonite Backup funktioniert also wohl nur in Prozessen, die Explorer.exe heißen. Zur Überprüfung habe ich mir dann die Datei CarboniteNSE.dll angeschaut und bin auf folgende hartkodierte Namen gestoßen:
- explorer.exe
- dopus.exe
- pdexplo.exe
- regsvr32.exe
- verclsid.exe
- carboniteui.exe
Ändere ich SpeedCommander.exe in einen dieser Namen, dann werden die Symbole korrekt angezeigt. Bei allen anderen verweigert Carbonite Backup die Anzeige der Symbole und des Kontextmenü-Eintrags.
Wat für ein Müll. Wenn andere Entwickler sowas machen, ists nicht schön…
Flexible Programmierung wird überbewertet 😀
Ich gehe stark davon aus, dass Sven in solchen Sachen Weitsicht besitzt. 😀
„Regsvr32“ und „Verclsid“ finde ich sehr interessant…
Deren GUI war schon immer sehr beeindruckend 😉
Aber dass die jetzt noch die Carbonite Punkte richtig anzeigen, ist überwältigend!
Vermutlich Performancegründe. Und vermutlich reichen die Strings für 90% ihrer Kunden. Und verclsid.exe ist durchaus verständlich; ohne würde Explorer die wahrscheinlich gar nicht laden.
Evtl. reicht es, die auf SpeedCommander aufmerksam zu machen.
Das ist mal ein neues Geschäftsmodell. Geld von Dateimanagerentwicklern verlangen um in eine Whitelist eingetragen zu werden.
das ist ja fast so schlimm wie beim benchmark faken. ist schon krass!
@meh: Habe ich versucht, bisher gab es aber noch keine Reaktion.
Tja, Ignoranz kann ganz schön hässlich sein. 😉
Ein ähnliches Verhalten habe ich bei dem Tool TortoiseHg (eine Shell-Erweiterung wie TortoiseSVN für Mercurial) bemerkt. Dort waren die Overlay-Icons bisher auf „explorer.exe“ beschränkt (aus Performance-Gründen, damit z.B. in normalen Datei-Dialogen keine Ausgabe erfolgt), diese Einschränkung wurde aber mittlerweile (nach Hinweis auf alternative Dateimanager) glücklicherweise aufgehoben.
Greift hier eigentlich auch das neue Allgemeines Gleichbehandlungsgesetz? 😉