Komfortabler Dateimanager mit vielen Funktionen

Produkte

SpeedCommander 13.10.5975 (Beta 2)

By Sven on 14.01.2010 - 15:10 in SpeedCommander 13 with 1 Kommentar

Auf dem Weg zur finalen Version 13.10 könnt ihr euch jetzt die zweite Betaversion herunterladen. Neu ist das Ausblenden von leeren Wechseldatenträgern, zudem wurden weitere Fehler beseitigt.

Leere Wechseldatenträger ausblenden

By Sven on 13.01.2010 - 16:00 in SpeedCommander 13 with 13 Kommentare

Windows 7 bietet die Möglichkeit, im Arbeitsplatz Wechseldatenträger ohne eingelegte Medien auszublenden. Das verspricht insbesondere bei Kartenlesern mit mehreren Laufwerksbuchstaben Vorteile, da noch nur das Laufwerk mit der eingelegten Speicherkarte sichtbar ist und somit die Frage ‚Welcher Laufwerksbuchstabe war das gerade noch?‘ entfällt.

Wer mag, kann diese Funktionalität nun auch in SpeedCommander 13.10 aktivieren:

Leere Wechseldatenträger ausblenden

Ich war mir nicht sicher, ob diese Funktion standardmäßig aktiviert werden sollte. Möglicherweise wundert sich der eine oder andere, warum seine Laufwerke plötzlich nicht mehr sichtbar sind. Daher erst einmal die manuelle Aktivierung. Was meint ihr?

SpeedCommander 13.10.5945 (Beta 1)

By Sven on 15.12.2009 - 10:45 in SpeedCommander 13 with 2 Kommentare

Die neue Betaversion ist hauptsächlich ein Bugfix-Release und behebt die meisten Probleme, die mir seit dem Erscheinen der RTM-Version gemeldet wurden. Zudem werden Shellerweiterungen nun während der Laufzeit nicht mehr entladen. Ich bin mal gespannt, ob der eine oder andere unerklärliche Absturz damit behoben ist.

Neu ist eine Kompatibilitätsoption für das Ziehen und Ablegen mit der rechten Maustaste. Durch das Setzen von

[Drag&Drop]
ShellRightDrop=0

in der SpeedCommander.ini zeigt SpeedCommander das Menü selbst an und führt die Aktionen auch selbst aus, wie es bis SpeedCommander 12 der Fall war. Allerdings werden dabei im Menü keine Aktionen von Shellerweiterungen mehr angezeigt.

Mit der Option

[Accels]
ShowContextMenuAccelerators=1

werden Tastenkürzel auch in den Kontextmenüs angezeigt. Die finale Version ist für Februar geplant.

Shellerweiterungen und CoFreeUnusedLibraries

By Sven on 09.12.2009 - 22:45 in SpeedCommander 13 with 11 Kommentare

Ein Anwender hatte mir berichtet, dass SpeedCommander bei ihm nach einer gewissen Inaktivität im Hintergrund bei Aktivierung abstürzt. Der Absturzbericht zeigt dabei folgenden Callstack an:

user32.dll!UserCallWinProcCheckWow()
user32.dll!DispatchMessageWorker()
MxMfc90ud.dll!AfxInternalPumpMessage()
MxMfc90ud.dll!CWinThread::PumpMessage()
MxMfc90ud.dll!CWinThread::Run()

Diesem kann man entnehmen, dass der Absturz während der Verarbeitung einer Nachricht in der Funktion UserCallWinProcCheckWow der user32.dll auftrat. Die Ursache ist aber leider nicht ersichtlich. Kurze Zeit später schrieb mir der Anwender, dass er mit Hilfe von ShellExView den Kontextmenüeintrag von StExBar deaktiviert hat. Anschließend stürzte SpeedCommander nicht mehr ab. Nach der Installation von StExBar konnte ich das Problem nachstellen.

StExBar ist eine Erweiterung für den Explorer und stellt ein Kontextmenü sowie eine Symbolleiste zur Verfügung, in denen häufig verwendete Befehle abgelegt werden können. Der Vertrieb erfolgt unter der GPL, der Quellcode steht somit zur Verfügung. Ich habe mir also den Quellcode heruntergeladen und versucht, mit dem Debugger dem Problem auf den Grund zu gehen.

Meine Vermutung war, dass es etwas mit dem vorzeitigen Entladen der Dll zu tun hat. Dazu muss man wissen, dass eine MFC-Anwendung von Zeit zu Zeit nicht mehr benötigte Handles und temporäre Objekte freigibt. Dies geschieht, wenn die Anwendung Däumchen dreht und auf eine Eingabe des Anwenders wartet. Zu den Aufräumarbeiten gehört es auch, dass in bestimmten Zeitabständen durch Aufruf der Windows-Funktion CoFreeUnusedLibraries nicht mehr benötigte COM-Dlls entladen werden. Zu diesen COM-Dlls zählen auch die verschiedensten Shellerweiterungen.

Beim Entladen einer COM-Dll ruft Windows die von der Dll exportierte Funktion DllCanUnloadNow auf. Durch Rückgabe von S_OK stimmt die Dll einer Entladung zu, mit S_FALSE wird das Entladen verhindert. Nach Änderung des Rückgabewertes auf S_FALSE wurde StExBar nicht mehr entladen und der Absturz in SpeedCommander blieb aus.

Nun galt es, den Grund des Entladeproblems zu finden. StExBar erstellt bei der Initialisierung ein Fenster, in dem eine Symbolleiste und ein Eingabefeld platziert werden. Die Anzeige des Fensters erfolgt im Explorer durch den Aufruf der Schnittstelle IDockingWindow::ShowDW, mit IDockingWindow::CloseDW wird das Fenster wieder entfernt.

SpeedCommander ist allerdings nur an der Anzeige des Kontextmenüs interessiert und nicht an der zusätzlichen Symbolleiste. Das führt dazu, dass das Fenster während der Initialisierung erzeugt, bei der Freigabe des Kontextmenüs aber nicht geschlossen wird. Auch beim Entladen der Dll bleibt das Fenster weiter bestehen, was natürlich nicht beabsichtigt ist.

Bei der Aktivierung von SpeedCommander informiert das Hauptfenster alle untergeordneten Fenster. Dazu gehört auch das unsichtbare Fenster der zwischenzeitlich entladenen StExBar-Dll. Dummerweise ist der Speicherbereich, den die Fensterfunktion belegt hat, durch das Entladen ungültig geworden. UserCallWinProcCheckWow greift so auf einen undefinierten Bereich zu und es kommt zum Absturz. Den vorgeschlagenen Fix hat Stefan schon eingecheckt, vielen Dank dafür an dieser Stelle! Mit der nächsten Version von StExBar sollte das Problem dann nicht mehr auftreten.

Dieses Beispiel zeigt wieder einmal, dass die durch das Entladen von Shellerweiterungen verursachten Abstürze äußerst vielgestaltig und schwer zu ermitteln sind. Deshalb habe ich mich dazu entschlossen, die automatische Entladefunktion in der MFC durch eine Option in der SpeedCommander.ini abschaltbar zu machen. Nun bin ich am Überlegen, ob die Entladefunktion standardmäßig aktiviert (wie bisher) oder deaktiviert werden sollte. Für die Aktivierung spricht, dass nicht mehr benötigte COM-Dlls von Zeit zu Zeit entfernt werden und der Arbeitsspeicher etwas entlastet wird. Die Deaktivierung hat den Vorteil, dass möglicherweise der eine oder andere unerklärliche Absturz der Vergangenheit angehören könnte. Die Tendenz geht im Moment zur Deaktivierung, was meint ihr?

Mozy mag auch nicht jeden

By Sven on 16.11.2009 - 19:00 in SpeedCommander 13 with 1 Kommentar

Vor knapp zwei Jahren hatte ich darüber berichtet, dass Carbonite Backup die Anzeige von Overlaysymbolen nur für bestimmte Anwendungen erlaubt. Auf meine Bitte, in die Liste der erlaubten Anwendungen aufgenommen zu werden, habe ich damals keine Antwort bekommen.

Ich weiß nicht, ob dieses Verhalten eine Spezialität von Onlinebackup-Lösungen ist. Mozy macht es jedenfalls genauso, Overlaysymbole werden nur in bestimmten Anwendungen angezeigt:

  • explorer.exe
  • dopus.exe
  • conf.exe
  • pifsdr.exe
  • piimporter.exe
  • verclsid.exe
  • regsvr32.exe

Nenne ich SpeedCommander.exe zum Beispiel auf Explorer.exe oder dopus.exe um, dann zeigt auch SpeedCommander die Overlaysymbole. Das gleiche gilt auch für die Anzeige des Ordners MozyHome Remote Backup unterhalb von Computer. Die Auflistung dieses Ordners ist nur möglich, wenn die Anwendung einem der oben genannten Prozessnamen entspricht.

Die Intention einer Whitelist liegt wohl darin, möglichen Problemen bei der Zusammenarbeit mit anderen Anwendungen aus dem Weg zu gehen. Leider weiß der normale Anwender davon nichts und schiebt die Schuld immer auf die andere Anwendung, in diesem Fall auf SpeedCommander. Der Explorer zeigt die Symbole ja schließlich auch an.

Wie schon beim Carbonite-Fall habe ich auch an Mozy eine Anfrage geschickt. Ich bin gespannt auf die Antwort.

SpeedCommander 13 freigegeben

By Sven on 27.10.2009 - 12:00 in SpeedCommander 13 with 3 Kommentare

Es ist geschafft, die finale Version von SpeedCommander 13 kann nun heruntergeladen werden. An dieser Stelle noch einmal vielen Dank an die internen und externen Betatester für die tolle Unterstützung!

SpeedCommander 13 war für mich das erste Projekt, das von Anfang an mit Visual Studio 2008 und Team Foundation Server (TFS) entwickelt wurde. Vor einem knappen Jahr habe ich von der damaligen Version 12.30 einen Entwicklungsstrang abgespalten und dann zweigleisig entwickelt. Im Hauptstrang ging es weiter bis zur Version 12.50, während im Entwicklungsstrang die Version 13 entstand. Änderungen im Hauptstrang wurden in regelmäßigen Abständen in den SC13-Strang übertragen. Nach dem Erscheinen der Version 12.50 wurde der SC13-Strang dann wieder in den Hauptstrang zurückgeführt.

Von diesen Erfahrungen wird auch der für 2011 geplante SC14 profitieren. Der Entwicklungsstrang wird schon jetzt für Arbeiten am SC14 verwendet. Bisher war es immer so, dass die Entwicklung der nächsten Hauptversion frühestens nach einem Jahr begann. Im Hauptstrang geht es wie gewohnt mit der Version 13 weiter, Updates sind wieder im Abstand von 100 Tagen geplant.

In den nächsten Tagen werde ich hoffentlich einmal etwas Zeit finden, einen Blick auf die Beta 2 von Visual Studio 2010 zu werfen. Ein möglicher Umstieg hängt auch davon ab, ob ich EasyTabs ohne großen Aufwand anpassen kann. Unter der Haube hat sich in Visual Studio 2010 ja einiges geändert.

Belegexemplare von com!

By Sven on 19.10.2009 - 11:30 in Presse with 2 Kommentare

An dieser Stelle muss ich der Zeitschrift com! – Das Computer-Magazin einmal ein Lob aussprechen. Neben der c’t ist sie eine der ganz wenigen Zeitschriften, die automatisch ein Belegexemplar verschicken. Und das selbst bei einer kleinen Meldung von drei Sätzen.

SpeedCommander 13 fertiggestellt

By Sven on 14.10.2009 - 15:30 in SpeedCommander 13 with 12 Kommentare

Gestern habe ich die finale Version von SpeedCommander 13 fertiggestellt. Gegenüber der RC-Version wurden noch sechs kleine Fehler behoben, die alle im Forum berichtet wurden. Die Veröffentlichung der finalen Version ist für den 27. Oktober 2009 geplant.

Jetzt muss ich mich nur noch um das Handbuch und um die Website kümmern.

SpeedCommander 13 (RC)

By Sven on 06.10.2009 - 14:00 in SpeedCommander 13 with 8 Kommentare

Ab sofort könnt ihr euch den Veröffentlichungskandidaten herunterladen. Neue Funktionen und behobene Fehler werden wie gewohnt im Anwenderforum aufgelistet.

Die finale Version wird wie geplant Ende Oktober erscheinen.

Einkaufswagen-Chips

By Sven on 14.09.2009 - 14:40 in Support with 6 Kommentare

Gerade bekommen:

Sehr geehrte Damen und Herren,

als Sammlerin von Einkaufswagen Chips wende ich mich heut mit einer großen Bitte an Sie. Schon mehrfach habe ich in anderen Sammlungen und bei Sammlertreffen Einkaufswagen Chips von Ihnen gesehen. Bisher konnte ich aber keinen ertauschen. Nun möchte ich Sie bitten mir einige Ihrer Chips für meine Sammlung zuzusenden. Dafür im Voraus schon recht herzlichen Dank.

Ich hoffe, ich richte meinen Wunsch nicht vergeblich an Sie und verbleibe

mit freundlichen Grüßen

Die bisher produzierten 0 Stück scheinen sich zu einem echten Sammlerobjekt entwickelt zu haben.

Top