Komfortabler Dateimanager mit vielen Funktionen

Windows

Erfundene Kompatibilitätsprobleme

By Sven on 07.10.2014 - 15:10 in Windows 10 with Keine Kommentare

Die Vorstellung von Windows 10 hat viele überrascht, die meisten hatten mit Windows 9 gerechnet. Microsoft begründet den Sprung damit, dass die vielen Neuerungen den Versionssprung rechtfertigen. Sollte das stimmen, dann können wir noch großes erwarten. Der derzeitige Umfang der technischen Preview ist diesen Sprung für mich noch nicht wert.

Letzte Woche hat dann auf Reddit ein angeblicher Microsoft-Entwickler den wahren Grund preisgegeben. Schuld am Auslassen der Nummer 9 soll ein häufig vorkommender Quellcodeschnipsel mit dem Inhalt

if (osName.startsWith("Windows 9")

und die damit zu erwartenden Kompatibilitätsprobleme sein. Viele Seiten haben über die tausenden schlampigen Programmierer berichtet.

Die wenigsten haben sich aber bemüht, die etwaigen Kompatibilitätsprobleme zu hinterfragen. Searchcode liefert zwar mehr als 4300 Ergebnisse, die wenigsten entsprechen aber dem Suchmuster.

Die fragwürdigen Zeilen finden sich im Java Development Kit (JDK) von Oracle und in anderen Java-Programmen. Sie beziehen sich auf den Windows-Namen, den die Java-Laufzeitumgebung anhand der jeweiligen Windows-Version zusammenstellt. Die Laufzeitumgebung ruft dafür die Windows-Funktion GetVersionEx und auf wertet die Rückgabe aus. Der entsprechende Codeschnipsel für die aktuelle Windows-Generation (Versionsnummer 6) schaut so aus:

else if (ver.dwMajorVersion == 6) {
if (ver.wProductType == VER_NT_WORKSTATION) {
 switch (ver.dwMinorVersion) {
 case 0: sprops.os_name = "Windows Vista"; break;
 case 1: sprops.os_name = "Windows 7"; break;
 case 2: sprops.os_name = "Windows 8"; break;
 case 3: sprops.os_name = "Windows 8.1"; break;
 default: sprops.os_name = "Windows NT (unknown)";
 }

Windows 10 meldet sich mit 6.4. Dieser Fall ist in den JDKs 7 und 8 noch nicht eingearbeitet. Also wird die default-Marke angesprungen und der von der Java-Laufzeit bereitgestellte Name wäre momentan ‘Windows NT (unknown)’. In späteren Java-Versionen erfolgt hier sicher noch eine Anpassung. Die Entscheidung über den neuen gewählten Namen liegt aber ganz bei Oracle. Sollte Oracle Kompatibilitätsprobleme befürchten, dann hätte es ihnen auch freigestanden, einen kompatibleren Namen (z.b. Windows Nine) zu verwenden.

Mit Windows 8.1 hat Microsoft aber auch die Funktionalität von GetVersionEx geändert. Bis einschließlich Windows 8.0 war es so, dass GetVersionEx immer die aktuelle Versionsnummer zurückgegeben hat. Ab Windows 8.1 hängt die zurückgegebene Versionsnummer davon ab, ob sich die Anwendung per Manifest als kompatibel ausweist. Fehlt der Kompatibilitätseintrag im Manifest oder hat die Anwendung keins, dann gibt sich Windows 10 auch nur als Windows 8.0 zu erkennen. Ältere Anwendungen haben also keine bösen Überraschungen zu befürchten.

Dies würde im Moment auch die Abfrage im Java-JDK betreffen. Aufgrund des fehlenden Kompatibilitätseintrags für Windows 10 in der Java-Laufzeitumgebung gibt

public class Main
{
     public static void main(String[ ] args)
     {
         String osName = System.getProperty("os.name");
         System.out.println(osName);
     }
}

derzeit unter Windows 10 den Text

Windows 8.1

aus.

10 = 6 + 4

By Sven on 02.10.2014 - 11:30 in Windows 10 with 3 Kommentare

Windows 10 Technical Preview

Alten Task-Manager in Windows 8 reaktivieren

By Sven on 14.11.2013 - 16:05 in Windows 8 with Keine Kommentare

Mit dem neuen Task-Manager von Windows 8 kann ich mich nicht so recht anfreunden. Zum einen wird trotz minimiertem Start und Ausblenden, wenn minimiert immer ein Eintrag in der Taskleiste angezeigt. Dazu möchte ich in der Prozessliste auch nur die Prozesse meines Benutzernamens sehen und nicht gleich alle Systemprozesse.

Im Netz habe ich eine Lösung gefunden, wie man weiter den alten Task-Manager verwenden kann. Die zusätzlichen Registrationseinträge sind nur nötig, wenn man den neuen Task-Manager komplett durch den alten ersetzen möchte. Ohne diese kann man z.B. den alten Task-Manager per Autostart minimiert in den Infobereich starten und hat bei Bedarf durch einen Rechtsklick auf die Taskleiste Zugriff auf den neuen.

Der einzige Nachteil ist, dass der alte Task-Manager nur in englischer Sprache verfügbar ist. Auch auf der deutschen Windows 8-DVD gibt es nur die englische Version. Aber das ist verschmerzbar.

Umstieg 1: Windows 8

By Sven on 12.11.2013 - 10:20 in Windows 8 with Keine Kommentare

Nun bin ich doch von Windows 7 auf Windows 8.1 umgestiegen. Auslöser dafür war Parallels Desktop, eine Virtualisierungssoftware für Mac OS. Nach einer Testinstallation von Windows 8 in Parallels auf dem MacBook Pro war ich plötzlich überrascht, dass alle Modern UI-Apps jeweils in einem Fenster angezeigt wurden – auf dem Windows Desktop. Verantwortlich dafür ist Modern Mix von Stardock, das zusammen mit Start8 durch Parallels automatisch installiert wird. Keine Umschaltung mehr zwischen den Oberflächen und ein vernünftiges Startmenü – so hätte Microsoft Windows 8 von Anfang an ausliefern müssen. Und die Glass-lose Oberfläche ist eigentlich auch ganz schick, wenn man die Titelleistenfarbe etwas dunkler stellt und den breiten Fensterrahmen verkleinert.

Nach dem Umbenennen von Dieser PC in Computer und dem Entfernen der Bibliotheken aus diesem Ordner durch Löschen der Schlüssel

{1CF1260C-4DD0-4ebb-811F-33C572699FDE}
{374DE290-123F-4565-9164-39C4925E467B}
{3ADD1653-EB32-4cb0-BBD7-DFA0ABB5ACCA}
{A0953C92-50DC-43bf-BE83-3742FED03C9C}
{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}
{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}

unter

[HKLM\SOFTWARE\Microsoft\Windows\Current Version\Explorer\MyComputer\NameSpace]

ist die alte Ordnung in diesem Ordner wiederhergestellt. Auf einem 64-bit System sollte man dann diese Schlüssel auch aus

[HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace]

löschen. Ansonsten werden die Einträge in den ‘Datei öffnen’-Dialogen von 32-bit Programmen weiter angezeigt.

In den Eigenschaften des Papierkorbs kann man durch Aktivierung der Option Dialog zur Bestätigung des Löschvorgangs anzeigen die aus Windows 7 gewohnte Nachfrage vor dem Löschen wiederbeleben. Wer wie ich eine etwas kleinere Darstellung der Textgrößen bevorzugt (Titelleisten mit 10 und der Rest mit 8 anstatt 11/9), der kann die Werte unter Systemsteuerung\Darstellung und Anpassung\Anzeige anpassen.

Die Breite für die Rahmenfüllung kann unter

[HKCU\Control Panel\Desktop\WindowMetrics]

über den Eintrag PaddedBorderWith angepasst werden. Der hier angezeigte Wert ist abhängig von der aktuellen DPI-Skalierungsstufe. Die Basiswerte für einen logischen Pixel sind

-15 für 100%
-12 für 125%
-10 für 150%
-8 für 200%

Einfach die gewünschte Breite mit dem Basiswert multiplizieren und den Wert entsprechend ändern. Mit 0 kann man die zusätzliche Rahmenfüllung auch deaktivieren.

Was gibt es sonst noch zu sagen? Auf die Daemon Tools kann ich nun verzichten, weil ISO-Dateien in Windows 8 ganz einfach als virtuelles Laufwerk eingebunden werden können. Das reicht mir für Installationen aus ISO-Dateien völlig aus. Der Task-Manager erfordert schon beim Start angehobene Rechte. Das erschwert den Autostart, wenn man den Regler für die Benutzerkontensteuerung voll aufgedreht hat. Hier hilft es nur, ihn per Aufgabenplanung zu starten. Aber auch hier zeigt er trotz minimiertem Start immer noch einen Eintrag in der Taskleiste, obwohl im Menü die Option Ausblenden wenn minimiert aktiviert ist. In einem Forum habe ich einen Lösungsvorschlag gefunden, aber der funktioniert bei mir nicht zuverlässig. Falls jemand von euch noch eine Idee dazu hat, würde ich mich über einen Kommentar freuen.

Dieser PC

By Sven on 10.09.2013 - 16:25 in Windows 8 with 7 Kommentare

Wer hatte bei Microsoft eigentlich die besch…eidene Idee, in Windows 8.1 Computer durch Dieser PC zu ersetzen?

Windows 8.1 - Dieser PC

Mal ganz abgesehen davon, die Bibliotheken mit in die Laufwerksübersicht zu integrieren.

Wartezeit bei Anmeldung

By Sven on 22.09.2009 - 16:15 in Windows 7 with 11 Kommentare

Seit einiger Zeit habe ich auf meinem Entwicklungsrechner das Problem, dass beim Windows-Start nach der Eingabe des Kennworts noch etwa 30 Sekunden vergehen, bis der Willkommensbild durch den Desktop ersetzt wird. Als Schuldiger kam dafür eigentlich nur eines der Programme in Betracht, die kürzlich installiert wurden.

Der Zweitrechner musste nun nochvom RC auf die finale Windows 7-Version aktualisiert werden. Direkt nach der Installation habe ich dann den Desktop und die Farben angepasst. Nach einem Neustart hatte ich dann auf der frischen Installation den gleichen Effekt. Zwischen Eingabe des Kennworts und der Anzeige des Desktops vergingen wieder 30 Sekunden. Diesmal konnte kein fremdes Programm schuld sein, es war nämlich noch keines installiert.

Daraufhin aktivierte ich wieder das Standard-Aerodesign, quasi den Auslieferungszustand. Erstaunlicherweise erschien der Desktop nun wieder sofort nach Eingabe des Kennworts. Nach etwas Herumspielen hatte ich dann die problematische Einstellung gefunden. Sobald der Desktophintergrund auf Einfarbig gesetzt wird, kommt es zu dieser Wartezeit. Ein Hintergrundbild zeigt dagegen keine Verzögerung.

Auf meinem Entwicklungsrechner machte ich dann die Gegenprobe. Dort war seit einiger Zeit wieder ein einfarbiger Hintergrund aktiviert. Nach der Umschaltung auf ein Hintergrundbild war die Wartezeit bei der Anmeldung auch hier verschwunden.

Auch auf dem Laptop lässt sich dieser Effekt reproduzieren. Ein möglicher Workaround ist die Erstellung einer einfarbigen Bilddatei, die dann als Hintergrundbild gewählt wird. Die Betaversion sowie der Releasekandidat haben dieses Problem nicht gehabt, hier konnte man ohne Einschränkungen einen einfarbigen Hintergrund aktivieren.

Könnt ihr dieses Verhalten bei euch auch nachvollziehen?

Ganz schön viel Auswahl

By Sven on 18.08.2009 - 18:00 in Windows 7 with 5 Kommentare

Gestern bei der Installation der Checked Build von Windows 7:

Auswahl Windows 7 (Teil 1)

Und weiter geht’s…

Auswahl Windows 7 (Teil 2)

Habe mich dann doch für die normale Ultimate entschieden.

Windows 7 auf MSDN verfügbar

By Sven on 06.08.2009 - 19:20 in Windows 7 with 4 Kommentare

Seit 19.00 Uhr können sich MSDN-Abonnenten die englischsprachigen Versionen von Windows 7 herunterladen. Folgende Fassungen sind verfügbar:

  • Windows 7 Starter (x86)
  • Windows 7 Home Basic (x86)
  • Windows 7 Home Premium (x86 und x64)
  • Windows 7 Professional (x86 und x64)
  • Windows 7 Ultimate (x86 und x64)

Dazu gibt es noch die Debugsymbole, das Windows Automated Installation Kit und das Windows Driver Kit. Das Windows SDK wird wie schon beim RC in drei Fassungen angeboten (x86, x64 und ia64). Das deutsche MUI-Pack kann ebenfalls heruntergeladen werden.

Die SHA1-Prüfsummen für die Ultimate-ISO lauten übrigens überraschenderweise

  • x86: 5395DC4B38F7BDB1E005FF414DEEDFDB16DBF610
  • x64: 326327CC2FF9F05379F5058C41BE6BC5E004BAA7

Die Downloadgeschwindigkeit ist erwartungsgemäß wieder unter aller Sau. Der vorgezogene Vertrieb über die Tauschbörsen scheint also keine Entlastung zu bringen.

Update: Über die Top-Downloads (Akamai Download-Manager) geht es deutlich fixer.

Das Ende von Multi-Boot

By Sven on 29.07.2009 - 14:00 in Windows 7 with 7 Kommentare

Seit dem Erscheinen von Windows 95 waren auf meinem Entwicklungsrechner immer mehrere Betriebssysteme installiert. Das war auch bitter nötig, denn Virtualisierer waren damals noch ein Fremdwort. Entwickelt habe ich weitgehend unter NT4, unter Windows 95 brauchte man dazu gute Nerven. Fast jede Schutzverletzung hat das Betriebssystem in’s Schwitzen gebracht, häufig musste anschließend das System neu gestartet werden. Ab und zu musste der Debugger aber auch mal unter Windows 95 angeworfen werden. In Hochzeiten waren fünf Systeme nebeneinander installiert (Windows 95, 98, ME, NT4 und Windows 2000).

Heute sind es nur noch drei (Windows XP x64, Windows Vista x64 und Windows 7 x64). Das aber nur, weil es Virtual PC nicht schafft, ein 64-Bit Betriebssystem zu installieren. Vor einiger Zeit habe ich mir deshalb mal wieder VMWare Workstation angeschaut, das neben der Unterstützung für 64-bit Gastsysteme auch eine viel bessere Snapshot-Verwaltung bietet. Mit der Remote Debugging-Funktion von VS 2008 ist so das Debuggen auf den verschiedensten Systemen ein Kinderspiel, zudem hält man sich immer in der gewohnten Arbeitsumgebung auf.

Damit entfällt nun die Notwendigkeit, auf dem Entwicklungsrechner verschiedene Betriebssysteme installieren zu müssen. Mit der Aktualisierung auf die finale Version von Windows 7 gibt es dann nur noch ein Betriebssystem auf der Festplatte. Der Rest findet in einer VM statt.

DRIVER_POWER_STATE_FAILURE

By Sven on 20.05.2009 - 10:00 in Windows 7 with 2 Kommentare

In Arbeitspausen schicke ich meinen Rechner immer per Tastendruck in den Standby-Modus (S3), um Strom zu sparen. Mit dem neuen Rechner zeigten sich hier aber unter Windows 7 unerwartete Probleme. Manchmal ließ der Rechner ordnungsgemäß in den Standby schicken, öfters schaltete er sich aber nicht richtig ab und ließ sich ohne Reset auch nicht mehr aufwecken. Es stellte sich heraus, dass der Standby-Modus immer genau einmal pro Sitzung funktionierte. Beim zweiten Versuch war der Rechner dann weg.

Wartet man nach dem Hängenbleiben etwas ab, dann taucht nach ein paar Minuten ein Bluescreen mit der Meldung DRIVER_POWER_STATE_FAILURE auf. Der Callstack im Minidump ließ auf Netzwerkprobleme schließen, da hier tcpip.sys und andere Treiber auftauchten.

Mit deaktivierter Netzwerkkarte war das Problem plötzlich verschwunden, nach erneuter Aktivierung war wieder nur ein Standby pro Sitzung möglich. Auch ein Einspielen anderer Treiber half nicht.

Irgendwie kam ich dann auf die Idee, in den Energieeigenschaften der Netzwerkkarte wieder alle Optionen zu aktivieren. Normalerweise sind das mit die ersten Einstellungen, die ich nach einer Neuinstallation deaktiviere. Ansonsten kann es passieren, dass der Rechner nach dem Wechsel in den S3-Modus sofort wieder hochfährt, weil die Netzwerkkarte irgendein Paket aufgeschnappt hat. Außerdem sollte die Netzwerkkarte ja auch keinen Grund haben, den Rechner von sich aus in den Standby zu schicken.

Nach der Aktivierung konnte der Rechner plötzlich beliebig oft zwischen Normalzustand und S3-Modus umschalten. Nach ein paar weiteren Tests stellte sich heraus, dass die Option Computer kann das Gerät auschalten, um Energie zu sparen unbedingt aktiviert sein muss. Ist sie deaktiviert, dann lässt sich der Rechner nachvollziehbar nur einmal sicher in den S3-Modus schicken. Jeder zweite Versuch hängt ihn auf.

Verstehen muss man das wohl nicht. Aber falls einer ein ähnliches Problem hat, dann hilft ihm vielleicht dieser Eintrag etwas weiter.

Top