Nach IE8 Installation öffnet ein Doppelklick auf einen Ordner im Explorer immer ein neues Fenster

Ich habe auf einem 2008er Server auf IE8 umgestellt.
Seitdem öffnete der Explorer (nicht IE) alle Ordner in einem neuen Fenster. Die Einstellungen unter Extras -> Orderoptionen -> Allgemein sind jedoch korrekt eingestellt.

Bei einigem hin und herspielen zeigte sich, dass im Kontext Menü korrekt Explorer fett dargestellt wird.
Wähle ich auf einem Order aus dem Kontextmenü Explorer aus, wird dieser Ordner im selben Fenster geöffnet.
Mache ich einen Doppelklick dann öffnet sich ein neues Fenster erzeugt, so wie wenn man im Kontextmenü den Befehl Öffnen auswählt.

Eine Recherche im Internet ergab, dass ich nicht alleine bin. Ich habe danach auch einige Beiträge zu diesem Problem bzgl. XP gefunden und einige Registry Einträge in HKCR (Drive/Folder/Directory) mit einem Vista System verglichen und die sind alle identisch. Alle Lösungen, die ich im Netz fand haben mir nicht geholfen.

Ich habe dann versucht einige Explorer DLLs neu registrieren. DLLs, die auch in anderen Artikeln zu Explorer Problemen erwähnt wurden. Die Lösung kam ziemlich schnell mit der erneuten Registrierung der actxprxy.dll.

Die Lösung sieht also wie folgt aus:
cmd Prompt als Administrator öffnen und den folgenden Befehl ausführen:

regsvr32 actxprxy.dll

Auslösung: DrawText unter Vista gegenüber XP um bis zu Faktor 50 langsamer!

Am 17. Januar habe ich den folgenden Artikel geschrieben: DrawText unter Vista gegenüber XP um bis zu Faktor 50 langsamer!

Ich möchte Euch die Auflösung des Problems nicht vorenthalten.

Eigentlich ist es keine Lösung sondern nur der Fakt, dass auch XP unter gleichen Bedingungen genauso lahm ist wie Vista.
Es liegt an den erweiterten Spracheinstellungen, die unter XP optional sind aber eben nicht mehr unter Vista. Dort sind die immer mit installiert.

So sieht das ganze bei einer normalen XP Installation aus, mit der entsprechenden Performance:
XP-DrawText-Fast

Man kann sehen, dass die zwei unteren Checkboxen aus sind. Wenn man diese nun einschaltet und die entsprechenden Module nachinstalliert werden, dann erlebt man unter XP nach einem Neustart die selben Geschwindigkeitseinbruch wie unter Vista:
XP-DrawText-Slow

Mein Testprogramm läuft fast 50mal langsamer als bei der Standardinstallation und damit genauso schnell/lahm wie unter Vista. Nimmt man die zwei Checks wieder heraus, dann hat man den alten gewohnten Speed.

Wenn man unter Vista in den entsprechenden Dialog der Systemeinstellung sieht, kann man auch sehen, dass man hier nichts mehr beschleunigen kann durch eine eventuelle Deinstallation, denn offensichtlich gehören diese Bestandteile bei Vista zum Inventar:
Vista-DrawText-Slow

So und damit ist auch diese Supportanfrage bei Microsoft „ungelöst“, aber zumindest „erklärt“ geschlossen.

Ich frage mich dennoch warum eine solche EInstellung solche Auswirkungen haben muss. Letzten Endes sind das auch nur Fonts mit denen umgegangen werden muss. Ich finde diesen extremen Unterschied auffällig, allerdings wird sich vermutlich nichts daran ändern…

Ich wünsche allen Lesern einen schönen Juli und verziehe mich jetzt erstmal für die nächsten 2 1/2 Wochen ohne Laptop und PC an die Nordsee, zum Radfahren, Baden und Drachen steigen lassen… 😉

Vista SP2 Backup Dateien freigeben

Wer, wie auch beim Vista SP1, einige 100 MB Speicher nach der Vista SP2 Installation zurückhaben möchte, der kann einfach die angelegten Backup Dateien entfernen. Natürlich nur wenn man SP2 auch wirklich nicht mehr entfernen will.

Dazu einfach das kleine Programm compcln aufrufen.Dazu muss man ein CMD-Fenster im Admin Modus öffnen und einfach folgenden Befehl ausführen:

%windir%\system32\compcln.exe

Die komplette Dokumentation findet sich hier:
http://technet.microsoft.com/de-de/library/dd335037(WS.10).aspx

PS: Nett ist, dass dieses Tool auch die SP1 Dateien entfernt. Was ich noch nicht ganz verstanden habe ist ob auch andere Hotfix Backups entfernt werden. Bei mir auf meinem Laptop wurden durch dieses Tool ca. 500 MB freigegeben. Vista SP1 hatte ich bereits entfernt.

Vista: Nach Installation von SP2 wird immer wieder nach einem WPD-Gerätetreiber gesucht

Ich habe ja schon einmal von einem Problem mit dem WPD-Treiber berichtet:
Vista: Ausrufezeichen vor Microsoft WPD-Dateisystem-Volumen-Treiber im Gerätemanager

Jetzt habe ich Vista SP2 installiert und nach jedem Neustart meines Systems sucht Vista nun immer wieder nach einem WPD-Gerätetreiber. Wenn man Vista anweist nie wieder nach solch einem Treiber zu suchen, ignoriert es das gefliessentlich. Genauso wie die erneute Suche nach dem Treiber, der auch gefunden wird, interessiert meine Rechner gar nicht.

Abhilfe hat bei mir nur folgendes geschaffen.

  • Öffnen der Computerverwaltung, dort Datenträgerverwaltung aufrufen
  • Allen Laufwerken, die dort aufgeführt werden weisen wir nun einen beliebigen Laufwerksbuchstaben zu (das sind zu 100% die Laufwerke von den Speicherkartenleser, die einmal entfernt wurden)
  • Dann starten wir den Rechner neu
  • Entfernen alle diese Laufwerksbuchstaben wieder über die Datenträgerverwaltung in der Computerverwaltung
  • Und der Spuk ist vorbei.

Beim nächsten Neustart wird nicht wieder nach einem Treiber verlangt.

MS-SQL: Universelles Datumsformat

Datumsangaben in SQL Queries sind immer wieder eine Freude. Im Gegensatz zu allen anderen Datentypen hat man es hier auch noch mit einer sprachspezifischen Einstellung (US English, Deutsch etc.) zu tun.
Also was macht der Entwickler, er schreibt SQL Code wie diesen, der die Funktion CONVERT oder CAST verwendet:

CREATE VIEW dbo.International_Dates AS
SELECT PurchaseOrderID, TotalDue
FROM AdventureWorks.Purchasing.PurchaseOrderHeader
WHERE OrderDate < CONVERT(DATETIME,'2002.05.01',102);

Man kann eben nicht sicher sein wie der Datumswert interpretiert wird. Das folgende Statement würde also nur mit einer englischen Locale funktionieren:

CREATE VIEW dbo.USA_Dates AS
SELECT PurchaseOrderID, TotalDue
FROM AdventureWorks.Purchasing.PurchaseOrderHeader
WHERE OrderDate < 'May 1, 2002';

Dabei gibt es ein Datmsformat im MS-SQL Server, dass immer gleich interpretiert wird, das so genannte Unseparated String Format . Netterweise geht das sogar für DateTime Werte wenn man diesen im Format yyyyMMdd hh:mm:ss.ttt angibt.
Dies entspricht den CAST/CONVERT Formaten 112 und 114!

Man kann den obigen Query also komplett locale-unabhängig so schreiben.

CREATE VIEW dbo.Uniform_Date AS
SELECT PurchaseOrderID, TotalDue
FROM AdventureWorks.Purchasing.PurchaseOrderHeader
WHERE OrderDate < '20020501';

Man kann sich CAST und CONVERT also oft genug sparen wenn man Queries aufbaut, da Datum-Strings im Format yyyyMMdd hh:mm:ss.ttt, eben sprach/localeunabhängig sind.
Ich habe eine spezielle Funktion die genau dieses MS-SQL-Format benutzt um ein COleDateTime in das entsprechende Stringformat für einen SQL Query zu bringen, wenn ich mal keine Parameter in einem Query benutzen will oder kann.

Nachtrag: es ist ohne Probleme möglich die Uhrzeit auch abgekürzt zu übergeben, wie z.B. auch in der Form: yyyyMMdd hh:mm, oder yyyyMMdd hh:mm:ss

Vista: Wo ist bitte die Option „Unterstrichene Buchstaben für Tastatur Navigation ausblenden“ geblieben

Ich bin Tastatur Fan. Wenn ich es vermeiden kann benutze ich nicht die Maus. Aus diesem Grund möchte ich natürlich auch immer die Acceleratoren (unterstrichenen Buchstaben) in Menüs oder Dialogen sehen.
Leider ist seit Windows XP die Standardeinstellung so, dass man erst durch Drücken der ALT-Taste die Acceleratoren sichtbar macht.

Unter XP findet man das ganze unter

  • Systemsteuerung -> Darstellung und Design -> Anzeige -> Darstellung -> Effekte:
    Unterstrichene Buchstaben für Tastatur Navigation ausblenden (mit ALT-Taste einblenden)

Leider hat ist diese Option unter Windows Vista nicht mehr dort zu finden.
Dank Windows Vista Suche nach „Tastenkombination“ führte mich das direkt zu:

  • Systemsteuerung -> Erleichterte Bedienung -> Center für erleichterte Bedienung -> Bedienung der Tastatur erleichtern:
    Tastenkombinationen und Zugriffstasten unterstreichen

Ein Programm fast wie ‚Microsoft Live Meeting‘ für nix ;)

Microsoft SharedView 

Es ist nicht ganz so wie Live Meeting und kann auch nicht alles was Live Meeting kann (Voice Übertragung, Aufzeichnung etc.). Und die Geschwindigkeit ist auch nicht soooo der Kracher.
Aber Microsoft Shared View ist auf jeden Fall für mich eine heiße Entdeckung und ein Tipp für all diejenigen, die evtl. auch mal dem/der 80 jährigen Vater/Mutter am PC Remote unterstützend unter die Arme greifen wollen, weil der was am PC nicht versteht 😉 und gerade keinen NetViewer oder Live Meeting Account haben und es erscheint mir einfacher und effektiver als die Windows Remoteunterstützung.

Hier ein paar Features und Möglichkeiten:

  • Jeder Nutzer entscheidet welche Programme er freigibt, oder ob er gar (für einen Supportfall) den ganzen Desktop freigibt. Nicht nur derjenige, der die Session gestartet hat.
  • Jeder Nutzer verfügt automatisch über die Steuerung seiner freigegebenen Anwendung oder des freigegebenen Desktops.
  • Es ist möglich das jeder Sitzungsteilnehmer die Steuerung anfordern kann, sodass man aktiv beitragen und eingreifen kann.
  • Derjenige, der die Freigabe gestartet hat, erhält automatisch die Steuerung wieder wenn er mit der Maus klickt oder eine Taste auf der Tastatur betätigt.
  • Jeder Teilnehmer hat einen personalisierten Mauszeiger, mit dem er auf Bereiche hinweisen oder auch Bereiche hervorheben kann – ideal geeignet, um jeden Teilnehmer einzubeziehen und sicherzustellen, dass keine Details übersehen werden.
  • Und es gibt ein weiteres praktisches Feature: jeder Teilnehmer kann so genannte „Handzettel“ bereitstellen. Das sind einfach Dateien, die sich andere Teilnehmer sofort herunterladen können.
  • SharedView integriert sich in den Messenger

Mehr hier unter diesem Link:
http://www.connect.microsoft.com/site/sitehome.aspx?SiteID=94

Es lohnt sich wirklich einen Blick auf dieses Stück Software zu werfen ❗

CMD.EXE versteht keine Unicode oder UTF-8 Batch Dateien

Ich habe für einen Deployment Prozess noch einen etwas größere komplexe Batch-Datei. Die BAT Datei enthielt auch zum Teil eben Umlaute die ja nicht ANSI sein dürfen. Zudem auch einige der Verzeichnisse neuerdings Umlaute enthalten, dachte ich mir: „Was soll es, Du speicherst das einfach als Unicode Datei!“ Die Vista CMD.EXE wird ja anhand der BOM erkennen was los ist.

😯 Pustekucken ❗ CMD.EXE mag in keiner Art und Weise Unicode oder UTF-8 in Batch-Dateien.

No chance at all. Einzig zur Unicode-Ausgabe kann man die CMD.EXE verleiten.
Eigentümlich ist das schon, weil TYPE z.B. BOMs korrekt berücksichtigt.

Da merke ich mal wieder wie verwöhnt ich mit 4NT bin.

PS: Ich weiß das es in Zeiten der Powershell andere Möglichkeiten gibt.
Man kann mich mit entsprechenden Kommentaren also gerne verschonen. 😉

Vista: Standby und Hibernate Probleme

Standby und Hibernate können eine endlose Geschichte des Leidens sein. Das liegt an sich nicht an Vista, unter Windows XP hatte ich auch immer wieder Ärger.
Hier mal wieder zwei neue Erfahrungen:

Problem 1:
Ich fahre meinen Rechner meistens mit Hibernate am Tagesende herunter. Warum Ausschalten, wenn eben alles was man braucht beim neuen Einschalten sofort da ist. Nun wachte mein Rechner jedoch nachts um Mitternacht oder etwas später sofort wieder auf. Morgens lief der Rechner und schaltete auch (wegen Problem 2) nicht in den Standby.
Ursache 1:
Ich hatte Nero 9 installiert. Und Nero 9 hat einen Task in der der Aufgabenplanung mit dem Namen NeroLiveEpgUpdate eingetragen. Dieser veranlasste aus irgend einem Grund im Hibernate auch das Aufwachen des Rechners.
Einfach diesen Eintrag deaktiviert und endlich blieb der Rechner ausgeschaltet wie ich es wollte.

Problem 2:
Mein Rechner ging nicht mehr in den Standby. Er schaltete einfach den Bildschirm ab und das wars.
Ursache 2:
Hier war es die Windows Media Player Freigabe. In den Energieoptionen existieren extra Einträge unter Multimediaeinstellungen ob ein Standby auch bei existierenden Freigaben erlaubt ist.
Nachdem ich die Freigaben im Windows Media Player entfernt hatte – die ich sowieso nicht nutzte –  funktionierte auch wieder der Standby.

DrawText unter Vista gegenüber XP um bis zu Faktor 50 langsamer!

❗ Ja Ihr habt ganz richtig gelesen und ich irre mich nicht ❗

Wir haben in einem unserer C++/MFC Programmen eine komplexe Anzeige von Reports, die alle unterschiedliche Zeilenhöhe haben und in einem speziellen Fenster angezeigt werden (eigene Entwicklung).
Nun stellten wir fest, dass das Rollen in diesem Programmteil auf Vista-Rechnern mit viel Nachlauf funktionierte und auch einige andere Operationen länger als gewohnt dauerten. Bei meinem Suchen, Profilen und Testen kam ich auf ein sehr lahmes Abarbeiten der Funktion DrawText  mit DT_CALCRECT.

Um das Problem zu isolieren schrieb ich ein kleines Testprogramm, das erstaunliches zu Tage brachte.
Hier die Ergebnisse von 4 verschiedenen Rechnern (Durchlauf von 100×100 DrawText Calls):

  • Pentium Quad-Core Q8200 mit Vista: 48.111 msec
  • Pentium Core2Duo T2310 mit Vista: 78.953 msec
  • Pentium Dual Core 3,2Ghz mit XP: 1.516 msec
  • Alter Pentium 3,0Ghz HT mit XP: 1.922 msec

😯 Der Code ist teilweise um den Faktor 50 langsamer auf Windows-Vista im Vergleich zu Windows-XP

Wer Lust hat es selbst zu testen, der findet hier das Beispielprogramm im Sourcecode (VS-2005):  TestDrawText.zip
Wer das Programm als Exe möchte findet es hier: TestDrawTextExe.zip

Beschreibung:
Dieses Beispielprogramm führt gemäß einem angegebenen Zähler je 100mal DrawText mit DT_CALCRECT für einen längeren mehrzeiligen Text aus. Hierbei werden immer zufällige Textlängen verwendet. Der Algorithmus liefert jedoch immer die gleiche Zufallssequenz, damit der Test auch Vergleichbar bleibt.
Der Zufallsmechanismus wurde nur eingebaut, um für für meinen Fall realitätsnahe Daten zu liefern.

Anmerkung:
Eine entsprechende Supportanfrage bei Microsoft läuft ❗
Was dabei herauskommt werde ich berichten…

Zuletzt angemerkt:
Windows 7 soll ja schneller sein als Windows Vista. Wer weiß? Ich habe es noch nicht getestet.
Vieleicht haben die nur diesen Bug gefixed und einen gigantischen Performanceschub erhalten :mrgreen: … SCNR…

Nachtrag (11.07.2009): 
Die Auiflösung zu diesem Problem findet sich hier in diesem Artikel 
http://blog.m-ri.de/index.php/2009/07/11/ausloesung-drawtext-unter-vista-gegenueber-xp-um-bis-zu-faktor-50-langsamer/