Komfortabler Dateimanager mit vielen Funktionen

SpeedCommander 12

Hey, it compiles! Let’s ship it!

By Sven on 20.08.2007 - 11:49 in SpeedCommander 12 with 11 Kommentare

Heute startet die 34. Kalenderwoche, und wie angekündigt gibt es in dieser die erste öffentliche Betaversion von SpeedCommander 12 zum Download. Ein solcher Moment ist für mich immer sehr spannend, da man nie weiß, wie die Reaktionen der Anwender auf die neuen Funktionen ausfallen. Hier im Blog gab es zwar schon einige Vorgucker, über ein paar grundlegende Änderungen habe ich aber noch nicht berichtet.

Die Beta 1 ist (wie man so schön sagt) „feature complete“, jetzt geht es nur noch darum, kleinere Fehler zu finden. Die größeren haben meine Betatester hoffentlich alle gefunden. An dieser Stelle nochmals vielen Dank an den kleinen (aber feinen!) Kreis, ohne euch würden die nächsten Wochen sicher sehr viel stressiger verlaufen. Ein großes Dankeschön auch an Alexandra, die sich mit dem Design der neuen hochauflösenden Icons für Windows Vista wieder exzellente Arbeit geleistet hat.

Nur noch ab Windows 2000

By Sven on 13.08.2007 - 16:18 in SpeedCommander 12 with 7 Kommentare

Ende März hatte ich im Anwenderforum eine Umfrage zum eingesetzten Betriebssystem gestartet. Bis heute haben 114 Anwender abgestimmt. Die überwiegende Mehrheit (knapp 87%) verwendet XP oder Vista, ein kleiner Teil (fast 10%) setzt noch Windows 2000 ein. Windows 9x/ME sowie NT 4.0 werden kaum noch genutzt, von den vier abgegebenen Stimmen gehören drei zum Kreis meiner Betatester.

Aufgrund der Umfrageergebnisse und der Tatsache, dass das kommende Visual Studio 2008 nur noch Anwendungen für Windows 2000 und höher erstellt, habe ich mich dazu entschlossen, die Unterstützung für Windows 9x/ME und NT 4.0 mit SpeedCommander 12 einzustellen. SpeedCommander 12 wird es nur noch als Unicode-Version geben, Mindestvoraussetzung für den Betrieb ist Windows 2000. Die selbstentpackenden Archive von SpeedCommander 12 funktionieren aber weiterhin unter Windows 9x/ME und NT 4.0.

Die Lauffähigkeit von SpeedCommander 11.62 unter Windows 9x/ME und NT 4.0 wird mit diesem Schritt natürlich nicht eingeschränkt, zukünftige Updates in der 11.x-Reihe wird es auch weiterhin für diese Systeme geben.

Konfigurierbare Statuszeile

By Sven on 09.08.2007 - 10:16 in SpeedCommander 12 with 8 Kommentare

Eine der größeren Neuerungen in SpeedCommander 12 ist die anpassbare Statuszeile unterhalb der Ordnerfenster. In den bisherigen Versionen waren die angezeigten Informationen fest vorgegeben, in SpeedCommander 12 kann sich nun jeder Anwender seine eigene Statuszeile zusammenbauen.

Die Statuszeile kann aus mehreren Sektionen bestehen, jede Sektion wird im Definitionsfeld durch eine eigene Zeile definiert. Der Anwender kann sich aus einer Vielzahl von Parametern die gewünschten aussuchen. Zudem können Sektionen ausgeblendet werden, wenn der jeweilige Wert in der Sektion gleich oder ungleich 0 ergibt.

Folgende Parameter können verwendet werden:

Einträge insgesamt
{td} Anzahl der Ordner
{tf} Anzahl der Dateien
{ti} Anzahl der Dateien und Ordner
{tba} Größe aller Einträge (automatische Anzeige in Bytes, KiB, MiB, GiB und TiB)
{tbb} Größe aller Einträge in Bytes
{tbk} Größe aller Einträge in KiB
{tmp3} Dauer aller Musik- und Videodateien (mp3, wav, avi, wmv)
Ausgewählte Einträge
{sd} Anzahl der markierten Ordner
{sf} Anzahl der markierten Dateien
{si} Anzahl der markierten Dateien und Ordner
{sba} Größe aller ausgewählten Einträge (automatische Anzeige in Bytes, KiB, MiB, GiB und TiB)
{sbb} Größe aller ausgewählten Einträge in Bytes
{sbk} Größe aller ausgewählten Einträge in KiB
{smp3} Dauer aller ausgewählten Musik- und Videodateien (mp3, wav, avi, wmv)
Versteckte Einträge
{hi} Anzahl der versteckten Einträge
{hba} Größe aller versteckten Einträge (automatische Anzeige in Bytes, KiB, MiB, GiB und TiB)
{hbb} Größe aller versteckten Einträge in Bytes
{hbk} Größe aller versteckten Einträge in KiB
Speicherplatz
{dta} Speicherplatz insgesamt (automatische Anzeige in Bytes, KiB, MiB, GiB und TiB)
{dtb} Speicherplatz insgesamt in Bytes
{dtk} Speicherplatz insgesamt in KiB
{dfa} Freier Speicherplatz (automatische Anzeige in Bytes, KiB, MiB, GiB und TiB)
{dfb} Freier Speicherplatz in Bytes
{dfk} Freier Speicherblatz in KiB
{dua} Belegter Speicherplatz (automatische Anzeige in Bytes, KiB, MiB, GiB und TiB)
{dub} Belegter Speicherplatz in Bytes
{duk} Belegter Speicherplatz in KiB
{pf} Freier Speicherplatz in Prozent
{pu} Belegter Speicherplatz in Prozent
Sonstiges
{fs} Ordnerfenster werden synchronisiert (*)
{fi} Aktueller Dateifilter
{ci} Index des aktuellen Eintrags
Formatierung
{widthXX} Vorgabe einer festen Breite für die Sektion, wobei XX für die Breite in Punkten steht
{pad} Sektion auf XX% der Gesamtbreite vergrößern ({padXX})
{rpad} Sektion auf XX% der restlichen Breite vergrößern ({rpadXX})
{fmtr} Text in der Sektion rechtsbündig anzeigen
{fmtc} Text in der Sektion zentriert anzeigen
{fmtnb} Keine Anzeige des rechten Sektionsrandes
{h!} Text oder Sektion ausblenden, wenn der erste Wert 0 ergibt
{h?} Text oder Sektion ausblenden, wenn der erste Wert nicht 0 ergibt
{h:} Text oder Sektion ausblenden, der Ordner nicht zum regulären Dateisystem (lokales Laufwerk bzw. UNC-Ordner) gehört

Aufgrund der Vielzahl von möglichen Platzhaltern kann der Aufbau einer Vorlage recht komplex werden. Die vordefinierte Standardvorlage besteht aus vier Sektionen und sieht wie folgt aus:

{rpad}{sd}/{td} Ordner, {sf}/{tf} Dateien markiert{h!} ({hi} versteckte Einträge){h!}{h!} ({sbb} Bytes){h!}
{h!}{fi}{h!}
{h:}{pu}% belegt, {dfa} verfügbar{fmtnb}{h:}
{h!}{fs}{h!}

Das am Anfang stehende {rpad} legt fest, dass der nach der Anzeige aller Einträge noch freie Platz mit der ersten Sektion aufgefüllt wird. Die vier nachfolgenden Platzhalter zeigen die markierten sowie insgesamt vorhandenen Dateien und Ordner. Anschließend wird die Anzahl der versteckten Einträge angezeigt, aber auch nur, wenn mindestens ein versteckter Eintrag vorhanden ist. Dies wird durch den Platzhalter {h!} erreicht. Ist der erste nachfolgende Wert {hi} 0, dann wird der Text bis zum abschließenden {h!} ausgeblendet. Ist {hi} dagegen größer als 0, dann wird der Text abzüglich der beiden Platzhalter {h!} angezeigt. Das gleiche gilt für die nachfolgende Anzeige der Größe der markierten Dateien und Ordner.

In der zweiten Sektion wird der Name eines gewählten Filters angezeigt. Ist kein Filter aktiv, dann wird auch kein Filtername angezeigt. Da die gesamte Sektion nur aus dem Filternamen besteht, wird sie gänzlich ausgeblendet, sofern kein Filter aktiv ist.

Die dritte Sektion zeigt den verfügbaren Speicherplatz auf dem aktuellen Laufwerk sowie den prozentual belegten Anteil an. Durch {h:} wird festgelegt, dass diese Sektion nur bei einem lokalen bzw. Netzwerklaufwerk oder bei einem UNC-Ordner im Netzwerkbereich angezeigt wird.

In der vierten Sektion wird angezeigt, ob die Ordnersynchronisierung aktiviert ist. Bei aktivierter Ordnersynchronisierung wird das aus früheren SpeedCommander-Versionen bekannte *-Symbol angezeigt. Ist die Ordnersynchronisierung deaktiviert, dann wird die Sektion ausgeblendet.

Zusätzlich zur anpassbaren Statuszeilenvorlage gibt es noch einen Ministatus, dessen Aufbau nicht konfigurierbar ist. Der Ministatus besteht aus Name, Größe und Datum der letzten Änderung und kann automatisch angezeigt werden, wenn nur ein Element gewählt bzw. im NC-Auswahlmodus fokussiert ist. Die Anzeige des Ministatus kann zudem auch per Tastatur (Strg+Umschalt+L) ausgelöst bzw. deaktiviert werden.

Musikliebhaber werden sich sicher über die Parameter {tmp3} und {smp3} freuen. Damit lassen sich die Zeiten aller bzw. mehrerer MP3-Dateien aufaddiert in der Statuszeile anzeigen. Da die Statuszeile bei jeder Auswahländerung aktualisiert wird, erfolgt die Berechnung der Spielzeiten im Hintergrund. Zudem werden bereits ermittelte Zeiten pro Ordnerfenster zwischengespeichert.

Freigegebene Ordner

By Sven on 06.08.2007 - 10:18 in SpeedCommander 12 with 6 Kommentare

Beim Löschen von freigegebenen Ordnern mit SpeedCommander bleiben die Freigaben leider erhalten, da vor dem Löschen nicht geprüft wird, ob der Ordner für andere Benutzer freigegeben ist. Der Explorer zeigt hingegen vor dem Löschen eines freigegebenen Ordners einen Hinweisdialog an und entfernt die Freigabe automatisch.

SpeedCommander 12 passt sich nun dem Verhalten vom Explorer an und zeigt ebenfalls einen Hinweisdialog:

Löschen eines freigegebenen Ordners

Neu ist zudem auch die automatische Aktualisierung des Dateisymbols, wenn ein Ordner freigegeben bzw. wenn die Freigabe beendet wird. Bis einschließlich SpeedCommander 11 erfolgte die Aktualisierung erst nach dem manuellen Neueinlesen des Ordners.

Beim Testen dieser Funktion ist mir aufgefallen, dass die Anzeige von Freigaben bis einschließlich Windows XP für eingeschränkte Benutzer nicht funktioniert. Die entsprechenden Netzwerkfunktionen geben lediglich den Fehlercode „Zugriff verweigert“ zurück. In Vista wurde dieses Verhalten korrigiert, hier klappt die Anzeige auch für eingeschränkte Benutzer. Gleichwohl benötigt man für die Erstellung bzw. das  Löschen von Freigaben aber Administratorrechte. Bei eingeschränkten Benutzern bittet SpeedCommander daher über die Benutzerkontensteuerung um Bestätigung.

Endspurt

By Sven on 31.07.2007 - 13:17 in SpeedCommander 12 with 3 Kommentare

Nach einem dreiwöchigen Urlaub geht es nun mit frischer Kraft in die letzten Wochen vor dem Release von SpeedCommander 12. Die Entwicklung neuer Funktionen ist nahezu abgeschlossen, ab jetzt steht der Rundschliff auf dem Programm. Wenn alles wie geplant läuft, dann gibt es in der KW 34 die erste öffentliche Betaversion zum Download. Also bleibt gespannt.

Registerkarten mit Ziffern

By Sven on 06.07.2007 - 11:50 in SpeedCommander 12 with 11 Kommentare

Bei Verwendung von mehreren Ordnerfenstern lassen sich die ersten neun Registerkarten mit <Strg+1> bis <Strg+9> aktivieren. In SpeedCommander 12 können die Ordnerfenster auf Wunsch mit der jeweiligen Ziffer versehen werden, damit nicht immer erst mühsam durchgezählt werden muss.

In der Praxis sieht dies dann so aus:

Registerkarten mit Ziffern

Um die Ziffern etwas vom Text abzuheben, kann die Darstellung auch so erfolgen:

Registerkarten mit runden Ziffern

Meine bevorzugte Darstellung ist diese:

Registerkarten mit runden Ziffern

Letztlich kann aber jeder selbst entscheiden, ob und wie die Ziffern angezeigt werden.

Zusätzliche Datenströme anzeigen und löschen

By Sven on 22.06.2007 - 12:22 in SpeedCommander 12 with 6 Kommentare

Seit Windows XP (SP2) werden mit dem Internet Explorer heruntergeladene Dateien markiert. Als Markierung dient ein zusätzlicher Datenstrom, der auch beim Kopieren auf andere NTFS-Datenträger erhalten bleibt.

Mit SpeedCommander 12 lässt sich leicht feststellen, ob eine Datei zusätzliche Datenströme besitzt. Eine Spalte in der Detailansicht zeigt die Anzahl der zusätzlichen Datenströme an. Die Größe und der eigentliche Inhalt der Datenströme wird im Dialog „Mehr Eigenschaften“ angezeigt:

Datenströme anzeigen und löschen

Mit der Schaltfläche „Löschen“ können zusätzliche Datenströme aus der Datei entfernt werden. Sind mehrere Dateien markiert, dann werden die Datenströme aus allen Dateien gelöscht. Damit lässt sich z.B. schnell die ZoneID für alle heruntergeladenen Dateien entfernen.

Datei wird verwendet

By Sven on 15.06.2007 - 12:26 in SpeedCommander 12 with 4 Kommentare

Jeder kennt die Meldung, die beim Löschen oder Verschieben von Dateien desöfteren angezeigt wird:

Fehlermeldung beim Löschen einer Datei

Ein anderer Prozess hat den Zugriff auf die Datei gesperrt und ein Löschen ist somit nicht möglich. Der Anwender wird auch im Unklaren gelassen, welcher Prozess die Datei geöffnet hat. Letztlich bleibt nur ein Schließen aller Anwendungen möglich, um die Datei doch noch zu löschen.

Die mit Windows Vista eingeführte Schnittstelle IFileIsInUse verspricht nun Abhilfe. Sobald eine Anwendung IFileIsInUse implementiert, besteht die Möglichkeit

  • herauszufinden, mit welcher Bestimmung die Datei geöffnet ist (geöffnet, bearbeitet, abgespielt)
  • die geöffnete Datei zu schließen
  • das Hauptfenster der Anwendung zu aktivieren

Die Anwendung entscheidet selbst darüber, welche dieser Möglichkeiten von ihr angeboten werden.

Die oben angezeigte Meldung wird in SpeedCommander 12 nun sehr viel anwenderfreundlicher, sofern die jeweilige Anwendung IFileIsInUse implementiert:

IFileIsInUse in Aktion

Für alle anderen Fälle emuliert SpeedCommander 12 die IFileIsInUse-Schnittstelle, so dass die jeweilige Operation beliebig oft wiederholt werden kann:

Emuliertes IFileIsInUse

Größere Symbole in der Miniaturansicht

By Sven on 23.05.2007 - 15:19 in SpeedCommander 12 with 6 Kommentare

Die Miniaturansicht in SpeedCommander zeigt Vorschaubilder von Dateien an, die Größe der Vorschaubilder kann dabei frei gewählt werden. Für Dateien ohne Vorschaubild wird das jeweilige Icon angezeigt. Bis Windows 2000 ist die Icongröße auf 32×32 Punkte beschränkt, Windows XP erweitert die Größe auf 48×48 Punkte:

Miniaturansicht SpeedCommander 11

Windows Vista knackt diese Beschränkung und führt eine Symbolgröße von satten 256×256 Punkten ein. Dies ermöglicht nun endlich auch eine ausgefüllte Darstellung in der Miniaturansicht:

Miniaturansicht SpeedCommander 12

Die großen Symbole können beliebig skaliert werden und liefern so auch in größeren Darstellungen sehr ansprechende Ergebnisse:

Miniaturansicht mit 180 Punkten

Aussagekräftige Hinweisdialoge

By Sven on 18.05.2007 - 17:11 in SpeedCommander 12 with 8 Kommentare

Zur Anzeige von Hinweisen oder bei nötigen Entscheidungen verwenden viele Windows-Entwickler gerne die Funktion MessageBox. Man übergibt einen Text und legt die anzuzeigenden Schaltflächen fest, die Funktion bastelt dann daraus einen Dialog und zeigt ihn an.

Leider ist man bei der Wahl der Schaltflächen auf die folgenden Möglichkeiten beschränkt:

  • <OK>
  • <OK> und <Abbrechen>
  • <Ja> und <Nein>
  • <Ja>, <Nein> und <Abbrechen>
  • <Abbrechen>, <Wiederholen> und <Ignorieren>
  • <Abbrechen>, <Wiederholen> und <Weiter>

Möchte man zudem, dass der Hinweisdialog auch mit ‚Escape‘ verlassen werden kann, so muss explizt eine Abbrechen-Schaltfläche enthalten sein. Ist ein anderes Verhalten gewünscht oder möchte man eine andere Kombination von Schaltflächen einsetzen, so bleibt nur die Verwendung einer eigenen Dialogvorlage für jeden besonderen Fall.

Die meisten Programmierer sind aber von Natur aus recht faul. Anstatt eine eigene Dialogvorlage zu erstellen, werden die Hinweise oder Entscheidungsfragen so formuliert, dass man mit den angebotenen Schaltflächen auskommt. Allerdings kann es dann schon einmal vorkommen, dass der Anwender beim Lesen der Meldung nur hilflos mit den Schultern zuckt vor lauter Text gar nicht mehr weiß, welche Schaltfläche er nun wählen soll:

Layout ersetzen (SC11)

Auch bei Microsoft hat man das Problem erkannt. Mit Vista bekommt die ehrwürdige MessageBox mit dem Task-Dialog einen wirklich überzeugenden Nachfolger. Ein Task-Dialog besteht aus mehreren Elementen, die wichtigsten sind der etwas hervorgehobene Anweisungstext, der eigentliche Inhalt der Meldung sowie der Bereich mit den allgemeinen Schaltflächen. Zudem gibt es noch eine Reihe von optionalen Elementen:

  • eine Fortschrittsanzeige
  • eine beliebige Anzahl von Optionsfeldern
  • eine beliebige Anzahl von Command-Links
  • einen auf-/zuklappbaren Bereich mit erweiterten Informationen
  • ein Bestätigungskästchen (z.B. „Diesen Dialog nicht mehr anzeigen“)
  • einen Fußbereich mit zusätzlichen Informationen
  • zusätzliche Schaltflächen mit eigener Beschriftung

Alle diese Informationen werden in einer TASKDIALOGCONFIG-Struktur gesammelt und mit Hilfe der Funktion TaskDialogIndirect angezeigt. Dem Entwickler bleibt so der Entwurf eigener Dialogvorlagen erspart, stattdessen wird der Dialog mit den ausgewählten Elementen dynamisch zusammengestellt.

Auch SpeedCommander 12 wird mehr und mehr die neuen Task-Dialoge verwenden. Bei neuentwickelten Funktionen verzichte ich schon jetzt auf die alten MessageBoxen, ältere Funktionen werden Stück für Stück umgestellt. Der oben gezeigte Hinweis beim möglichen Überschreiben eines Layouts sieht in SpeedCommander 12 z.B. so aus:

Layout ersetzen (SC12)

Unter Windows XP und allen früheren Systemen werden die Task-Dialoge emuliert und schauen so aus:

Layout überschreiben (Windows XP)

Layout überschreiben (Windows 2000)

Top