Komfortabler Dateimanager mit vielen Funktionen

Startbildschirme von SpeedCommander 13

By Sven on 12.08.2010 - 11:50 in Allgemein with 7 Kommentare

Mit dem Startbildschirm von SpeedCommander 13 wurde der Komet in den wohlverdienten Ruhestand versetzt und durch das mit SpeedCommander 11 eingeführte Programmsymbol ersetzt. In der nicht-öffentlichen Betaversion vermutet ein kleines Pac-Man Symbol im großen C seine Mami:

Startbildschirm von SpeedCommander 13 (Beta)

Diese Komposition wurde auch in der öffentlichen Betaversion beibehalten:

Startbildschirm von SpeedCommander 13 (Öffentliche Beta)

Der Startbildschirm der finalen Version ist für mich der schönste bisher:

Startbildschirm von SpeedCommander 13

Eine spezielle Version für den Veröffentlichungskandidaten kam leider nicht zum Einsatz, sie soll hier aber nicht unerwähnt bleiben:

Startbildschirm von SpeedCommander 13 (RC)

SpeedCommander 13 erschien Ende Oktober 2009, kurz nach der Veröffentlichung von Windows 7.

Damit endet die Serie der Startbildschirme von SpeedCommander. Ich hoffe, dass der eine oder andere etwas Spaß daran hatte.

Startbildschirme von SpeedCommander 12

By Sven on 10.08.2010 - 10:50 in Allgemein with 4 Kommentare

Langsam kommen wir zum Ende der Startbildschirm-Galerie. Bei der nicht-öffentlichen Betaversion von SpeedCommander 12 verwandelte sich der Komet in einen Todesstern:

Startbildschirm von SpeedCommander 12 (Beta)

Mit der öffentlichen Betaversion wurde der Komet erneut überarbeitet:

Startbildschirm von SpeedCommander 12 (Öffentliche Beta)

Bei der endgültigen Version gab es nur noch kleine Änderungen im Textlayout:

Startbildschirm von SpeedCommander 12

SpeedCommander 12 erschien im Oktober 2007.

K32GetModuleFileNameExW wird nicht gefunden

By Sven on 30.07.2010 - 16:05 in Windows SDK with 2 Kommentare

Nach der Umstellung vom Windows SDK für Vista auf das von Windows 7 zeigte das Installationsprogramm von SpeedCommander unter Windows XP und Vista beim Start plötzlich folgende Meldung an:

---------------------------
setup.exe - Einsprungpunkt nicht gefunden
---------------------------
Der Prozedureinsprungpunkt "K32GetModuleFileNameExW" wurde in der DLL "KERNEL32.dll" nicht gefunden.
---------------------------
OK
---------------------------

Der Grund dafür ist, dass mit Windows 7 alle Funktionen der PSAPI.DLL in den Kernel gewandert sind. Wenn man nun für Windows 7 kompiliert, dann werden alle Funktionsnamen auf die entsprechenden Kernelfunktionen gemappt. Die Implementierung findet man in der psapi.h:

//
// Give teams a choice of using a downlevel version of psapi.h for an OS versions.
// Teams can set C_DEFINES=$(C_DEFINES) -DPSAPI_VERSION=1 for downlevel psapi
// on windows 7 and higher.  We found that test code needs this capability.
//
#ifndef PSAPI_VERSION
#if (NTDDI_VERSION >= NTDDI_WIN7)
#define PSAPI_VERSION 2
#else
#define PSAPI_VERSION 1
#endif
#endif

#if (PSAPI_VERSION > 1)
#define EnumProcesses               K32EnumProcesses
#define EnumProcessModules          K32EnumProcessModules
#define EnumProcessModulesEx        K32EnumProcessModulesEx
#define GetModuleBaseNameA          K32GetModuleBaseNameA
#define GetModuleBaseNameW          K32GetModuleBaseNameW
#define GetModuleFileNameExA        K32GetModuleFileNameExA
#define GetModuleFileNameExW        K32GetModuleFileNameExW
......
#endif

Die Kernelfunktionen existieren aber nur ab Windows 7. Auf älteren Systemen können sie beim Programmstart nicht aufgelöst werden und es erfolgt eine Fehlermeldung.

Zur Abhilfe definiert man einfach vor dem Einbinden der psapi.h den entsprechenden Kompatibilitätsschalter:

#define PSAPI_VERSION		1

Nun werden die Funktionen nicht mehr gemappt und wie bisher gewohnt in der PSAPI.DLL gesucht.

SpeedCommander 13.30.6165 (Beta)

By Sven on 27.07.2010 - 12:30 in SpeedCommander 13 with 5 Kommentare

Mit SpeedCommander 13.30 gibt es einige Änderungen hinter den Kulissen. Die wohl größte ist die Umstellung auf die CRT/MFC sowie den Compiler/Linker von Visual Studio 2010. Dazu wurden die Komponenten Scintilla, OpenSSL und UnRar auf die aktuellen Versionen aktualisiert.

In den Registerkarten können nun auf Wunsch nur die Laufwerksbezeichner anstatt der Ordnernamen angezeigt werden. Durch einen Doppelklick in den freien Bereich wird eine neue Registerkarte erstellt. Beim Kopieren von Dateien größer als 4 GiB auf einen FAT32-Datenträger erscheint nun eine aussagekräftigere Fehlermeldung.

Mit SpeedCommander 13.00 wurden die Dateien beim Doppelklick in der Listenansicht mit Hilfe des Kontextmenüs gestartet. Dazu wurde mit den markierten Dateien ein Kontextmenüobjekt initialisiert und mit dessen Methoden die Dateien geöffnet. Seitdem war auf meinem System aber zu beobachten, dass beim Öffnen von Mediendateien mit dem Media Player ab und zu mal die Meldung Starten des Servers fehlgeschlagen angezeigt wurde, die ich in den vorherigen Versionen nie zu sehen bekam. Aus diesem Grund öffnet SpeedCommander 13.30 die Dateien wieder mit der bewährten Windows-Funktion ShellExecuteEx. Über einen Schalter in der SpeedCommander.ini lässt sich die gewünschte Methode anpassen:

[FolderWndShell]
OpenWithContextMenu=0

0 ist Standard und steht für ShellExecuteEx, mit 1 werden die Kontextmenü-Methoden verwendet.

Dazu gibt es noch einen Schalter, mit dem sich die Verzögerung bei der Anzeige des InfoTip-Fensters beim Überfahren der Laufwerkssymbole mit der Maus einstellen lässt. In den ersten Betaversionen von SpeedCommander 13.00 gab es unter Umständen kleine Hänger, wenn der Mauszeiger bei der Laufwerksauswahl eine kurze Zeit über einem Netzlaufwerk verweilte und die Anzeige der Speicherplatzanzeige für die Laufwerkssymbole aktiviert ist. Mit dem folgenden Schalter lässt sich der Mindestaufenthalt des Mauszeigers über einem Laufwerkssymbol nun anpassen:

[DriveWnd]
InfoTipDelayInitial=0

Mit dem Wert 0 wird die in Windows eingestellte Verzögerung für die Anzeige von InfoTips verwendet, ansonsten erfolgt die Angabe in Millisekunden. Der Wert 2000 bedeutet also, dass man mit dem Mauszeiger zwei Sekunden über einem Laufwerkssymbol verweilen muss, damit das InfoTip-Fenster angezeigt wird.



Startbildschirme von SpeedCommander 11

By Sven on 23.07.2010 - 10:25 in Allgemein with 2 Kommentare

Bei SpeedCommander 11 gab es erstmals einen eigenen Startbildschirm für die Betaversion:

Startbildschirm von SpeedCommander 11 (Beta)

Mit dem Startbildschirm für die finale Version erfolgte ein Schwenk von einem dunklen zu einem hellen Hintergrund. Auch der Komet wurde grundlegend überarbeitet:

Startbildschirm von SpeedCommander 11

Für die an Windows Vista angepasste Version 11.5 gab es dann noch einen aktualisierten Startbildschirm, wobei das .V sowie das Vista-Logo im Kometen an Vista erinnern sollten:

Startbildschirm von SpeedCommander 11.5

SpeedCommander 11 erschien im Oktober 2005 als 32-bit und 64-bit Version. Ab SpeedCommander 11.1 gab es dann auch eine Version für U3-Sticks. Die Version 11.5 wurde im Oktober 2006 veröffentlicht.

Startbildschirm von SpeedCommander 10

By Sven on 21.06.2010 - 18:30 in Allgemein with 1 Kommentar

Nach einer kurzen Pause geht es heute weiter mit dem Startbildschirm von SpeedCommander 10. Im Vergleich zum Startbildschirm von SpeedCommander 9 wurde der Komet etwas überarbeitet:

SpeedCommander 10 erschien im Januar 2004.

Visual Studio 2010 kurz getestet

By Sven on 26.05.2010 - 11:05 in Visual Studio 2010 with 5 Kommentare

Nun hat die Neugier doch gesiegt und ich habe auf meinem Entwicklungsrechner Visual Studio 2010 installiert. Man kann sich ja nur mit ein paar gesammelten Erfahrungen für oder gegen eine Sache entscheiden.

Bei der Installation gab es nichts zu bemängeln, alles lief sauber durch. Auch die AddIns Visual Assist und Tabs Studio waren schnell eingerichtet. Auf Tabs Studio bin ich über einen Pingback zum EasyTabs-Beitrag gestoßen. Tabs Studio bietet die wichtigsten Funktionen von EasyTabs. Etwas nachteilig ist lediglich, dass die Leiste nicht auch unten angeordnet werden kann. Aber daran könnte man sich sicher gewöhnen.

Große Ernüchterung brachte der Aufruf der Online-Hilfe, zu der Martin schon einen treffenden Beitrag geschrieben hat. Keine Ahnung, was Microsoft sich da wieder mal gedacht hat, wenn überhaupt. Alles läuft im Browser ab und somit natürlich auch außerhalb der IDE. Vermutlich verwenden bei Microsoft alle Entwickler mehrere Bildschirme und müssen nie in der Hilfe suchen.

Bei der Anpassung von Menüs und Symbolleisten geht Microsoft neue innovative Wege. Symbolleisten können per Maus nur noch an der jeweiligen Andockposition hin- und hergeschoben werden. Das Wechseln der Positionen (z.B. vom oberen Fensterrand an den unteren) ist nur noch per Dialog möglich. Aber auch das Hinzufügen, Entfernen oder Verschieben von Symbolen oder Menüeinträgen funktioniert nur noch über ein Dialogfenster. Die Maus ist immerhin noch dafür da, die entsprechenden Schaltflächen im Dialog anzuklicken. Ich bin gespannt, ob sich dieses neue Bedienkonzept auch in anderen Anwendungen durchsetzt.

Über die Darstellungsqualität des Texteditors kann ich mich nicht beklagen. Alles wird sauber dargestellt, auch ohne die ClearType-Einstellungen anpassen zu müssen. Erheblich verschlechtert hat sich aber leider wieder einmal die Makro-Performance. Ich habe mir schon zu VC6-Zeiten ein paar Makros geschrieben, die auf Knopfdruck diverse Kommentarblöcke in Quelltextdateien einfügen. Im VC6-Editor waren die Blöcke quasi schon eingefügt, wenn man das jeweilige Tastenkürzel losgelassen hat. Der Editor von Visual Studio 2008 brauchte für die gleiche Aktion schon etwas über zwei Sekunden, was aber von Visual Studio 2010 mit über sechs Sekunden locker übertroffen wird.

Aufgrund der fensterlosen WPF-Oberfläche ist das Scrollen eines inaktiven Fensters per Mausrad mit Hilfe von KatMouse nicht mehr möglich. Man muss immer erst in das Fenster klicken, welches man durchblättern möchte. Die Bearbeitung der globalen VC-Verzeichnisse für Header- oder Bibliotheksdateien im Einstellungsdialog wurde wegen der Umstellung auf das MSBuild-System abgeschafft, stattdessen muss man diese nun in den Eigenschaftsseiten eines Projekts bearbeiten. Dazu wählt man im Menü Ansicht den Eigenschaften-Manager und öffnet jeweils eine Win32- und x64-Konfiguration:

Über den Befehl Eigenschaften des Kontextmenüs öffnet man den Einstellungsdialog und kann nun die Verzeichnisse anpassen:

Die aktualisierten Eigenschaften-Dateien werden in den lokalen Eigenschaften des Benutzers (C:\Users\<Benutzername>\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props bzw. Microsoft.Cpp.x64.user.props) abgelegt.

Zu dieser offiziellen Methode gibt es noch eine Alternative, mit der man die VC-Verzeichnisse systemglobal für alle Anwender ändern kann. Dazu öffnet man die beiden Dateien C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets\v100\Microsoft.Cpp.Win32.v100.props und C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\x64\PlatformToolsets\v100\Microsoft.Cpp.x64.v100.props und editiert die Pfade direkt. SpeedEdit kann auch Dateien in UAC-geschützten Verzeichnissen bearbeiten, bei Verwendung eines anderen Editors muss man die Dateien vor der Änderung erst in ein UAC-freies Verzeichnis kopieren und anschließend wieder zurückspielen.

Eine Konstante beim Erscheinen einer neuen Visual Studio-Version ist die Umstellung auf neue Projekt- und Arbeitsbereichsdateien. Die Konvertierung geschieht automatisch beim Öffnen eines alten Projekts oder eines Arbeitsbereichs. Dabei kann es passieren, dass Meldungen mit der Kennung MSB8012 angezeigt werden:

MSB8012: $(TargetName) (‚CxArj‘) does not match the Linker’s OutputFile property value ‚..\..\lib\CxArj61u.dll‘ (‚CxArj61u‘) in project configuration ‚Release|Win32‘. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetName) property value matches the value specified in %(Link.OutputFile).

MSB8012: $(TargetPath) (‚D:\Visual C++\Dev\Libraries\CxArchiver\CxArj\.\objs\Release\CxArj.dll‘) does not match the Linker’s OutputFile property value ‚..\..\lib\CxArj61u.dll‘ (‚D:\Visual C++\Dev\lib\CxArj61u.dll‘) in project configuration ‚Release|Win32‘. This may cause your project to build incorrectly. To correct this, please make sure that $(TargetPath) property value matches the value specified in %(Link.OutputFile).

Das passiert, wenn im Projekt eine Ausgabedatei festgelegt wird, die sich vom Projektnamen selbst unterscheidet oder der Ausgabepfad für die Datei nicht dem eingestellten Ausgabeverzeichnis für das Projekt entspricht. Ich vermute mal, dass dieses gar nicht mal so selten vorkommt, da Zieldateien in der Debugversion häufig durch ein abschließendes „d“ bzw. bei Erstellung von Ansi-/Unicode-Projekten durch ein zusätzliches „u“ für die Unicode-Variante gekennzeichnet werden. Bei mir ist es z.B. so, dass alle Dlls in einem gemeinsamen Zielverzeichnis erstellt werden. Da ich aber nicht möchte, dass sich in diesem Verzeichnis auch alle .exp- und .lib-Dateien dieser Dlls tummeln, unterscheidet sich das Ausgabeverzeichnis des Projekts vom Zielverzeichnis der Dlls.

Die gleichen Warnungen werden anschließend auch beim Erstellen des Projekts angezeigt. Zur Auflösung des Konflikts wird empfohlen, den Projektnamen in den allgemeinen Konfigurationseigenschaften anzupassen. In Visual Studio 2010 gibt es dafür ein neues Feld für die Anpassung von $(TargetName). Allerdings muss man diese Änderung dann auch für alle Projekte in allen Konfigurationen durchführen. Wer also 100 Projekte mit jeweils vier Konfigurationen hat (Release/Debug für Win32/x64), darf unter Umständen 400x mal den Zielnamen anpassen, wenn der Name der Ausgabedatei nicht dem Projektnamen entspricht.

Allerdings ist es mir nicht gelungen, die zweite Warnung zum $(TargetPath) abzustellen, ohne das Ausgabeverzeichnis dem Zielverzeichnis gleichzusetzen. Fans der Holzhammer-Methode öffnen einfach die Datei C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets und entfernen in Zeile 982 den Text DoLinkOutputFilesMatch. Nachteilig ist dabei aber, dass die Variable $(TargetPath) dann nicht mehr der tatsächlichen Ausgabedatei entspricht, sondern stattdessen auf das in den Projekteigenschaften definierte Ausgabeverzeichnis zeigt. Wichtig ist das bei selbstdefinierten Build-Ereignissen, die man entsprechend anpassen muss, wenn man die Zieldatei nicht im Ausgabeverzeichnis ablegen möchte.

Nach der Konvertierung eines Arbeitsbereichs kann dieser mit Visual Studio 2008 nicht mehr geöffnet werden, wenigstens wird eine Sicherungsdatei angelegt. Will man mit beiden Versionen weiterarbeiten, dann muss man Arbeitsbereiche und Projektdateien doppelt pflegen. Vorsicht aber beim Einchecken in den TFS, da alle alten Projektdateien nach der Konvertierung automatisch aus der Quellcodeverwaltung gelöscht werden.

Mir persönlich fällt es sehr schwer, wesentliche Gründe zu finden, die für einen Umstieg auf Visual Studio 2010 sprechen. .NET 4 brauche ich nicht, die Hilfe-Funktion ist praktisch nicht mehr vorhanden und der neue historische Debugger funktioniert sowieso nur mit .NET-Code. Das erheblich verbesserte IntelliSense bringt mir auch keine Vorteile, da Visual Assist hier schon seit Jahren um Klassen besser ist. Die für einen C++-Entwickler wichtigen Neuerungen (Compiler, C/C++-Laufzeit und MFC) lassen sich zudem sehr einfach in Visual Studio 2008 einbinden.

Fazit: Bis zum Erscheinen von Visual Studio 2012 geht es erst einmal mit Visual Studio 2008 R2 weiter.

Aktualisierung auf TFS 2010

By Sven on 25.05.2010 - 18:30 in TFS with 2 Kommentare

Ich habe lange überlegt, ob ich den Team Foundation Server auf die neue Version aktualisiere. Aufgrund meines vorläufigen Verbleibs bei Visual Studio 2008 R2 ist das Upgrade eigentlich nicht notwendig. Allerdings versprühen die geringeren Softwareanforderungen einen gewissen Charme. Für die Installation von TFS 2008 war eine Windows-Serverversion notwendig, dazu kamen noch ein SQL-Server mit Berichts- und Analysefunktion sowie SharePoint. Das SP1 ließ sich nur einspielen, wenn der TFS-Server an einen Domänencontroller angemeldet war, allerdings durfte er selbst nicht auf einem solchen installiert werden. Ich musste also temporär einen Domänencontroller in einer VM installieren und vor dem SP1-Update den Server in die Domäne einklinken. Nach dem Update konnte die Verbindung wieder gelöst werden. Einfach sieht anders aus.

TFS 2010 ist hier deutlich anspruchsloser. Er lässt sich auch auf einem Client-Betriebssystem installieren und begnügt sich mit der Express-Variante vom SQL Server. Diese wird auf Wunsch auch während der Einrichtung des TFS installiert, einfacher geht es nicht. Zudem reizte mich auch eine Aktualisierung des Betriebssystems auf Windows 7 oder Windows Server 2008 R2, die eine bessere Zusammenarbeit mit Windows 7-Clients versprechen. TFS 2008 läuft bei mir noch auf einem Windows Server 2003 R2.

Die Festplatte meines Servers enthält bereits zwei primäre Partitionen mit jeweils 30 GB, einer testweisen Aktualisierung stand also nichts im Weg. Nach der Sicherung der aktuellen TFS-Datenbanken mit DBSave wurde auf der freien Partition Windows Server 2008 R2 eingespielt, anschließend folgte noch der gerade veröffentlichte SQL Server 2008 R2 sowie der TFS 2010. Nach der Rücksicherung der Datenbanken wurde TFS 2010 mit Hilfe der Team Foundation-Administratorkonsole über die Upgradefunktion eingerichtet:

Berichtsfunktion und SharePoint habe ich deaktiviert, da die beiden Sachen in den letzten zwei Jahren kaum bzw. gar nicht benötigt wurden. Wer mag, der kann im achten Schritt noch den vorgegebenen Namen für die Standardkollektion ändern, dies ist später nicht mehr möglich.

Auf dem letzten Screenshot ist zu sehen, dass bei der Installation auch gleich der Webzugriff eingerichtet wurde. Dafür musste im TFS 2008 noch eine zusätzliche Software eingespielt werden.

Anwender von Visual Studio 2008 müssen nun noch das Update für die Aufwärtskompatibilität von Visual Studio Team System 2008 Service Pack 1 mit Team Foundation Server 2010 installieren. Beim Verbinden mit einem TFS 2010-Server muss im Verbindungsdialog die vollständige Adresse http://server:8080/tfs angegeben werden.

Ein kleines Problem hatte ich mit dem alten Arbeitsbereich, der zwar übernommen aber in Visual Studio 2008 nicht erkannt wurde. Löschen und Neuanlegen schafften Abhilfe. An dieser Stelle noch der Hinweis, dass man zur Sicherheit vor der Aktualisierung möglichst alle Dateien einchecken sollte.

WS.Reputation.1

By Sven on 18.05.2010 - 11:15 in Alltägliches with 13 Kommentare

Seit der gestrigen Veröffentlichung von SpeedCommander 13.20 erhielt ich mehrere Anfragen von Anwendern, warum ihr Virenscanner das Installationsarchiv als Bedrohung ansieht und automatisch in Quarantäne verschiebt. Dabei wird folgender Screenshot angezeigt:

Es scheint so, als ob Symantec aus den Kriterien ‚Neu‘ und ‚Wenig verbreitet‘ eine abstrakte Bedrohung konstruiert, die dazu führt, dass die Datei sofort in Quarantäne verschoben wird. Die Hersteller von Antiviren-Software finden immer wieder neue Möglichkeiten, wie man Anwender verunsichern kann. Ganz abgesehen vom erhöhten Supportaufkommen, mit dem sich dann die kleinen Softwareanbieter herumärgern müssen.

SpeedCommander 13.20

By Sven on 17.05.2010 - 16:35 in SpeedCommander 13 with 5 Kommentare

SpeedCommander 13.20 wurde veröffentlicht und kann heruntergeladen werden. Die Liste mit den Änderungen findet ihr wie üblich im Anwenderforum.

Über zwei neue Funktionen hatte ich bereits berichtet. Mit der Einstellung

[FileOperation]
;Verschieben, wenn Quell- und Zielname identisch sind
;0 - Fehlermeldung
;1 - Datei wird umbenannt von 'dateiname.ext' nach 'dateiname [1].ext'
MoveOnSameName=0

kann das Verhalten beim Verschieben von Dateien im gleichen Ordner gesteuert werden. Bis zur Version 12 hat SpeedCommander beim Ausschneiden und Einfügen einer Datei im gleichen Ordner diese zu ‚dateiname [1].ext‘ umbenannt. Mit SpeedCommander 13 wurde dieses unter Umständen nicht ganz saubere Verhalten abgestellt und stattdessen eine Fehlermeldung angezeigt. Mit diesem Kompatibilitätsschalter kann das alte Verhalten wieder reaktiviert werden.

Das Öffnen von Dateien beim Doppelklick erfolgt ab dieser Version wieder mit der Windows-Funktion ShellExecuteEx. Beim Verwenden der Kontextmenü-Funktionen (neu ab SpeedCommander 13) scheint es leider das eine oder andere kleine Problem zu geben.

Top