Wo bitte ist der Reset-Schalter?

In meiner Entwicklungsmaschine wollte ich Speicher ergänzen. Ist ja keine Hexerei.

  • Rechner runterfahren
  • 1GB Riegel raus 2GB Riegel rein
  • Rechner neu starten, ENTF-Taste drücken:
    BIOS meldet 1GB mehr. Schöööön
  • Rechner mit Vista neu starten
  • Tadi-Tada der Vista Sound

😯 der Bildschirm wird schwarz nachdem eben der BIOS sich noch gemeldet hat. Monitor zeigt an „Kein Signal“!

  • Monitorschalter Aus/Ein:
    wenigstens habe ich den Anmeldebildschirm, aber nur 1024×768 Auflösung
  • Anmelden, Bildschirmeinstellung kontrollieren:
    Mein schöner 22Zoll ACER LCD-Monitor wird nicht als PnP-Monitor erkannt. Maximale Auflösung 1024×768.
  • Rechner runterfahren. Speicher zurückwechseln:
    Neustart… BIOS meldet sich auf Monitor, Vista-Sound, Bildschirm wird schwarz, Monitorschalter Aus/Ein, Bild ist da. Monitor wird nicht erkannt, Auflösung nur 1024×768
  • Rechner runterfahren. VGA Kabel angeschlossen:
    Neustart… Siehe da alles OK.
  • Rechner runterfahren. DVI Kabel angeschlossen:
    Neustart… Monitor aus, wird nicht erkannt, Auflösung nur 1024×768.
  • Bei laufendem Rechner Kabel raus und wieder rein:
    Netter Hardware Erkennungssound, aber nur 1024×768 und keine PnP-Monitor Erkennung.
  • Rechner runterfahren. Anderes DVI Kabel verwenden:
    Neustart… Monitor wird nicht erkannt Auflösung nur 1024×768.
  • Rechner runterfahren. Rechner vom Netz getrennt, neu gestartet, BIOS Reset:
    Neustart… Monitor wird nicht erkannt Auflösung nur 1024×768.
  • Nochmal Speicher rein/raus:
    No avail…
  • … weitere vergebliche Versuche irgendwas zu ändern..
  • … Kollege gefragt… der sagt mir alles was rät, ich schon längst probiert habe:
    Ratlos wie ich…
  • … weitere vergebliche Versuche irgendwas zu ändern..

😕 und nun? Board kaputt? Video-Karte gelyncht? Installation futsch?

Letzter Gedanke: Im Monitor ist ja auch Software ❗

  • Rechner läuft, Monitor wird nicht als PnP-Monitor erkannt, Auflösung 1024×768
  • Netzstecker vom Monitor gezogen 10 Sekunden gewartet und wieder angeschlossen.
  • Hardware Erkennungssound von Vista…
  • HURRA ❗ Monitor wird wieder als PnP Monitor erkannt.
  • Auflösung lässt sich wieder auf 1650×1050 stellen
  • Rechnerneustart und alles ist wieder wie gewohnt, inkl. 1GB mehr Speicher:
    Martin ist wieder glücklich und erleichtert :mrgreen:

Der I/O Schalter des Monitors scheint nicht wirklich den Bildschirm ein- oder auszuschalten.
Irgendwie war die Software des Monitors durcheinander geraten…

Resultat: Eine vergeudete Stunden weil ACER den Reset-Schalter vergessen hat, oder ich zu blöd war… 😉
Passiert so etwas immer nur mir?

WM_FLOATSTATUS der nette Helfer für eigene Popup Fenster

Manchmal entwirft man eigene Popup Fenster entwirft, die auch kurzfristig den Fokus bekommen sollen, wie z.B. ein Dropdown Fenster ähnlich einer Combobox. In diesem Fall hat man das Problem, dass das Main Fenster (Parent) als nicht mehr aktiv angezeigt wird, d.h. die Rahmenfarbe ändert sich, obwohl das eigentlich hier unerwünscht ist.

Eine Lösung wäre es WM_NCACTIVATE neu an das Parent zu versenden wenn WM_ACTIVATE eintrifft.
Die MFC hat aber hierfür eine weitaus bessere Technik, die sofort vermeidet, dass das Parent inaktiv angezeigt wird ❗
Man muss dazu nur die interne MFC Fensternachricht WM_FLOATSTATUS behandeln, die auch in der TN024 beschrieben, ist behandeln.

Etwas in dieser Art

...
   ON_MESSAGE(WM_FLOATSTATUS,OnFloatStatus)
...

LRESULT CMyDropDownWnd::OnFloatStatus(WPARAM wParam, LPARAM)
{
    return (wParam & FS_SYNCACTIVE) ? TRUE : FALSE;
}

und man verhindert dadurch, das das Parent inaktiv wird, weil man signalisiert, dass das neue Popup-Fenster synchron aktiv ist (FS_SYNCACTIVE). Die gleiche Technik wird auch innerhalb der Toolbars verwendet, die auch alle zusammen mit dem Parentframe alle aktiv oder alle inaktiv erscheinen.

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/

Schnell mal 7 neue Rechner einrichten… (klonen)

Das neue Jahr bringt manchmal neues, in meinem Fall neue Hardware.

7 baugleiche Rechner eines namhaften Herstellers wurden neu angeschafft um 7 ältere Rechner eines anderen namhaften Herstellers zu ersetzen.
Als Software sollten vorhandenen Volumenlizenzen für Vista Business und Office 2007 installiert werden zuzüglich einigen anderen Softwarepaketen.

Weder mein Kollege noch ich, hatten Lust jeden einzelnen Rechner individuell einzurichten, da 90% der Installation identisch sein wird. Also ging ich auf die Suche nach Software um die Rechner entsprechend zu klonen.
Der Weg über SYSPREP und Vista Deployment war mir zu komplex. Es mag einfach sein, dass es einfach ist, aber die Anleitung dazu war es nicht.

Als zufriedener Acronis-Nutzer bin ich dann schnell auf Acronis Snap Deploy 3.0 gestoßen. Diese Software kann weitaus mehr, als ich tatsächlich benötige, aber mit einer Lizenz und den einfachsten Installationsform konnte ich alles machen was ich wollte.

Der gesamte Weg lässt sich so kurz beschreiben:

  1. Mit dem Acronis Media Builder eine bootbare CD, mit dem Acronis Master Image Creator und dem Acronis Standalone Utility erzeugen.
  2. Einen Rechner komplett installieren mit allem was man braucht und haben möchte:
    Vista, aktuelle Treiber für die Hardware dieses Rechners, Office 2007, Nero 8 Essential, Visio 2007, eigene Software, Faktura, entsprechende Druckertreiber, diverse Freeware Tools etc.. Nicht zu vergessen natürlich auch alle Servicepacks und Security Updates durchlaufen lassen.
    Eben alles, was grundsätzlich auf diesen Rechner soll damit er lauffähig (benutzbar) ist.
  3. Dann habe ich einen neuen System-Wiederherstellungs-Punkt gesetzt und alle Wiederherstellungsdaten entfernt und auch das Laufwerk bereinigt um nicht überflüssige Daten zu clonen.
  4. Rechner herunterfahren.
  5. Externe USB-Platte angeschlossen.
  6. Mit bootbare Acronis CD und dem Acronis Master Image Creator gestartet.
  7. Image auf USB-Platte gezogen.
  8. Neuen Rechner starten mit bootbare Acronis CD und Acronis Standalone Utility starten.
  9. Image auswählen, Optionen für Netzwerk (Domäne, Rechnernamen) und ganz wichtig Neue SID erzeugen lassen.
  10. Image aufspielen (<12 Minuten).
  11. Rechner neu starten. Der erste Start dauert etwas länger wenn die Netzwerkeinstellungen und die SID angepasst werden).
  12. …und der Klon ist fertig 😉

Das ganze Verfahren ist so einfach, dass man wirklich kein spezielles Know How benötigt.
Genial einfach und wirklich preiswert ❗

PS: Ichhabe wirklich nur einen klitzekleinen Teil der Fähigkeiten von Snap Deploy verwendet, aber für mich war es genug.
Wer mehr will ist sicherlich auch extrem gut bedient, wenn man sich die weiteren Fähigkeiten dieses Tools ansieht…

Vista: Ausrufezeichen vor Microsoft WPD-Dateisystem-Volumen-Treiber im Gerätemanager

Es hat ziemlich lange gedauert bis ich verstanden habe woher das Ausrufezeichen vor dem Microsoft WPD-Dateisystem-Volumen-Treiber im Gerätemanager kommt.

Ich musste einige Siemens Rechner mit Vista neu ausstatten und habe einen Master erstellt um die anderen Rechner nur clonen. Irgendwann bei meinen Vorbereitungen erschien dann ein Ausrufezeichen vor dem Microsoft WPD-Dateisystem-Volumen-Treiber.

 wpd-dateisystem-volumentreiber

Irgendwann nachdem ich den Chipset Treiber aktualisierte und einige andere Änderungen gemacht hatte, erschien diese Anzeige. Ich machte die Änderungen langsam wieder rückgängig und fand dadurch den Grund.

Die Ursache ist ganz simpel. Meine Rechner verfügen auch über einen internen Speicherkartenleser. Dafür werden auch Laufwerksbuchstaben in der Datenträgerverwaltung reserviert. Mich nervt das regelmäßig, da ich maximal nur ein Laufwerk mit dem SD-Kartenleser nutze. Also entferne ich die Laufwerksbuchstaben für die anderen Kartentypen.
Aber genau das mag anscheinend der Treiber nicht.

Ordnet man allen Datenträgern wieder einen Laufwerksbuchstaben zu, verschwindet auch wieder das Ausrufezeichen. Also kein Grund zur Sorge und kein defekt. Einfach nur unschön.

PS: Bei den Rechnern, bei denen ich das beobachtete handelte es sich fast immer um Geräte mit Intel Chipsatz. Ich weiß nicht ob dies mit damit zusammenhängt.

Kann man mit einem Euro am Tag die Welt verändern?

Ja ❗

Zumindest für ein Kind in der Welt kann man mit einem Euro am Tag für eine gesicherte Schulausbildung, Ernährung und Gesundheitsfürsorge sorgen. Was sich mit diesem Euro für Kinder verändern kann ist unfassbar für uns Mitteleuropäer.

Wen das mehr interssiert, der sollte sich mal http://www.compassion-de.org ansehen ❗

Mein Blog ist 2 Jahre alt geworden + Gesegnete Weihnachtszeit + Ein gutes neues Jahr

Im Mitte Dezember 2006 hatte ich mir endlich die Zeit genommen diesen Blog einzurichten. Ich habe mit einigen Providern experimentiert bin aber dann schnell zu einer eigenen WordPress Installation gekommen, die ich ja auch immer noch erfolgreich verwende.

Schnell sind diese 2 Jahre sind vergangen und insgesamt 267 Beiträge wurden geschrieben. Und immer noch steigen die Zugriffszahlen langsam, aber stetig an, wenn ich der WordPress Blog-Statistik glauben darf. Ich hatte nicht gedacht, so viele Leser zu erreichen. Aber diese Bestätigung ist auch gut, denn was nützt ein Blog ohne Leser 😉

Allen regelmäßigen Kommentatoren sei hier auch einmal Dank für die immer guten und konstruktiven Beiträge.

Ich wünsche allen eine gesegnete Weihnachtszeit und ein gutes neues Jahr!

PS: In meinem Sidebar habe ich jetzt auch eine zusätzliche Combobox eingebaut, die es erlaubt weiter zurück in die Vergangenheit zu gehen als nur die bisherigen 18 Monate.