Fehler in ATLTHUNK.DLL führt auf Windows 10 (64bit) unter bestimmten Umständen zu zufälligen Crashes von Anwendungen

Wer es schnell mag, kann gleich den Beitrag und technische Details auf Stack Overflow lesen:
http://stackoverflow.com/questions/41741448/random-crashes-on-windows-10-64bit-with-atl-subclassing

Hier möchte ich etwas ausführlicher, die Story dazu erzählen, eine Story aus dem ganz „normalen“ Leben eines Programmierers 😉

Letztes Jahr stellen wir in der Firma produktiv von VC-2013 auf VC-2015 um. Wir haben eine relativ große Anwendung, die im Kern, MFC und ATL verwendet. Unsere Anwendung zeigt Informationen in vielen Tabs und Dialogen an. Mehr als 256 Fenster sind da keine Ausnahme und eher die Regel als eine Seltenheit.

Unsere Anwendung erzeugt bei Crashes automatisch volle Dumps auch bei Kunden. Für unsere Qualitätssicherung ein Muss und ein Segen.
Bereits in der Alpha und Beta Phase hatten wir auf manchen Rechnern ein eigentümliches Phänomen. Unser Programm startete und erzeugte Fenster und auf einmal kam es zu einem Absturz bei oft ganz einfachen Windows API Funktionen, die ein Fenster verwendeten und die alle ausnahmslos letzten Endes dazu führten, dass eine Nachricht an ein Fenster gesendet wird. Der Stack war nichtssagend und schien zerstört. Die Dumps für die einzelnen User waren aber fast immer glich.
Das Problem trat in Release und Debug Builds auf.

Der Horror für jeden Programmierer. Nicht nachzuvollziehende Crashes auf manchen Rechnern. Heapfehler? Wilder Zeiger? Buffer-Overrun? Nichts was man gebrauchen kann… aber kein Analysetool was wir verwendeten schlug Alarm…

Nach Sammlung von mehreren Dumps waren die Crashes immer wieder an ähnlichen Stellen und fast immer alle sofort nach Programmstart. Betroffen in der Regel alles Windows 10 64bit Maschinen auf dem aktuellen Softwarestand, meistens hatten diese Maschinen 8GB und zum Teil weitaus mehr Speichern und es waren ausnahmslos schnelle Intel i7 verschiedener Generationen. Und in virtuellen Maschinen konnte ich das bisher nicht nachvollziehen.

Interessant, war, dass ich diese Crashes auch auf meiner Entwicklungsmaschine hatte. Manchmal…
Nach einigen Tests konnte ich sagen. Entweder tritt der Fehler auf und solange der Rechner gestartet ist kann man es manchmal nachvollziehen, oder der Fehler tritt eben nicht auf und man hat Ruhe vor ihm. Dann hatte ich mir 3 Tage hintereinander – ohne Rechnerneustart – mit Debug-Session auf Debug-Session eine Spur erarbeitet. Es war immer das 257 Fenster, dass gesubclassed wurde (mit ATL Thunking) oder erzeugt wurde (ATL Fenster), dass zum Crash führte.
Insofern war es bei jedem User auch immer ein ähnlicher Dump, weil der Fensteraufbau ja bei jedem User individuell war.

Am Ende des dritten Tages hatte ich einen Testcode, der den Fehler in der aktuellen Windows Session meines Rechners und meinen Programm zu 100% nachvollziehbar machte. Ich verschob den Testcode immer weiter in einem Programm nach vorne, bis ich bei InitInstance ankam.
Ups. Es liegt nicht an meiner Software.
Dann isolierte ich den Testcode in eine eigenes Programm und konnte den Bug in einem minimalen Sample nachstellen.

Zeit für einen Support-Case bei Microsoft und eine Anfrage auf stackoverflow.com (das war am 19.01.2017).

Mit dem Case hatte ich natürlich auch einen Workaround. Ich musste nur einfach die atlthunk.dll nicht benutzen und auch das ging mit einer einfachen Änderung in der atlstdthunk.h. (Auskommentieren des defines USE_ATL_THUNK2).

Die Kommunikation mit Microsoft gestaltete sich nicht einfach. Aber ich hatte zumindest einen konstruktiven MS Mitarbeiter aus Indien erwischt. Dumps konnte ich Microsoft liefern, auch den Crash direkt in einer Session zeigen. Code hatten sie auch, aber der Bug war bisher nicht bei Ihnen nachvollziehbar. Das trieb mich fast in die Verzweiflung. Natürlich musste alles andere ausgeschlossen werden.. Virenscanner, andere Software… etc…
Dennoch kein Repro auf eine Microsoft Maschine. Allerdings weiß ich nicht wie „intensiv“ da gesucht wurde.

Dann endlich ein Lichtblick auf stackoverflow.com. Eugene konnte den Bug nachvollziehen. Endlich.
Und nachdem ich wusste, dass es mit der bevorzugten Ladeadresse zu tun hatte, konnte ich auch meinen Code erweitern und mit 100% Wahrscheinlichkeit den Crash erzeugen.
Wenn also an der bisher bevorzugten Ladeadresse der atlthunk.dll kein Speicher zur Verfügung liegt und sofort wieder eine Relocation notwendig wird, dann kracht es. Lustig, da wir ja durch ASLR sowieso keine festen Ladeadressen haben, aber es gibt innerhalb einer Windows Session dennoch eine „bevorzugte Ladeadresse“.

Jetzt bin ich gespannt auf Microsoft…
Denn defakto kann jede Software die mit dem VC-2015 und VC-2017 Compiler und der ATL kompiliert wurde von diesem Problem betroffen sein.

PS: Man entschuldige mir Ungenauigkeiten oder auch falsche Begrifflichkeiten…
Bis heute habe ich den Fehler immer noch nicht ganz verstanden und ganz sooo tief lebe ich im Kernel von Windows doch nicht. 😀

PPS: Ich werden den Artikel auf stackoverflow.com aktuell halten.

Nachtrag 01.03.2017:

  • Microsoft hat bestätigt, dass es sich um um einen Bug handelt.
  • Der Bug soll in der nächsten Windows 10 Version (RS2) gefixed sein.
  • Nachteil: Ich werde wohl mit der Änderung der ATL leben müssen, denn auch andere Windows Versionen sind von diesem Fehler betroffen.

Inhalt des Papierkorbs wird nicht angezeigt…

Ich hatte immer wieder Probleme, dass mein Papierkorb leer war, obwohl ich gerade eine Datei dort hin verschoben war.

Es schien auch alles andere zu funktionieren, denn ich konnte auch Aktionen im Explorer rückgängig machen und Dateien wieder so aus dem Papierkorb herausholen. Nur anzeigen konnte ich den Inhalt des Papierkorbes nicht mehr.

Analyse der Festplatte ergab, aber, dass die Dateien vorhanden sind, CHKDSK keinen Fehler liefert… nichts problematisches eigentlich zu finden. Ich habe keine Ahnung wie oft ich den entsprechenden Ordner entfernt habe und hoffte, dass sich die Datenbank des Papierkorbes irgendwann fängt. Aber dem war nicht so 🙁
Ich löschte eine Datei, die kurz im Papierkorb erschein um sofort wieder zu verschwinden.

Irgendwann hat es mich so genervt, dass ich doch weiter auf die Suche gegangen bin und habe in einem Forum einen Hinweis für eine Richtung gefunden, die ich gar nicht auf der Rechnung hatte.
Die Ursache war ein Wibu Codemeter-Dongle. Dieser Dongle steckt immer in meiner Entwicklungsmaschine um bestimmte Szenarien testen zu können. Wir benutzen für größere Lizenzen die Wibu-Codemeter-Dongles seit einigen Jahren mit gutem Erfolg und wir sind auch sehr zufrieden mit der Qualität, sowohl von Hardware als auch Software und SDK.

Der eingesteckte Codemeter Dongle meldete sich als  lokaler Datenträger an. Dadurch wollte Windows auch scheinbar den Papierkorb auf diesem Laufwerk suchen und finden. Aber eigentlich ist das Ding nur eine RAM-Disk, die keinen permanenten Speicher bietet. Sobald der Dongle als lokale Festplatte angemeldet ist, funktioniert auch der Windows-Papierkorb nicht mehr.
Ein schneller Test zeigte, dass der Papierkorb nur bei nicht eingestecktem Dongle verfügbar war.
Weitere Recherche ergab, dass die eigentliche Ursache ein Bug in Windows 7/2008R2 ist. Netterweise ist sogar ein Hotfix für Windows-7 und Windows Server 2008R2 verfügbar (Links siehe unten), aber leider hat der seinen Weg nach Windows-Update nicht gefunden :(.

Aber es lässt sich auch ohne Installation des Hotfixes schnell mit der Codemeter Runtime schnell ändern.
Die Codemeter Runtime gibt folgende Auskunft zu dem Dongle.

C:\...\CodeMeter\Runtime\bin>cmu32  -s1-2345678 --show-config-disk
cmu32 - CodeMeter Universal Support Tool.
Version 5.00b of 2013-May-14 (Build 1067) for Win32
Copyright (C) 2007-2013 by WIBU-SYSTEMS AG. All rights reserved.

- CmStick with Serial Number 1-2345678 and version 1.16
  Version:            1.16
  Flash Size:         no real flash available
  Virtual Drive:      D:
  Configuration:      LocalDisk with ActivePartition
  File System:        FAT32
  Boot-Code:          Int18 Boot Code
  Mdfa:               0x539

Über die entsprechenden Commandline Utilities der Wibu-Runtime kann man das aber umkonfigurieren. der Befehl lautet:
cmu32 -s1-2345678 –set-config-disk RemovableDisk
Dazu muss mit dem Parameter -s die Seriennummer des betroffenen Dongles angegeben werden.

C:\...\CodeMeter\Runtime\bin>cmu32 -s1-2345678 --set-config-disk RemovableDisk
cmu32 - CodeMeter Universal Support Tool.
Version 5.00b of 2013-May-14 (Build 1067) for Win32
Copyright (C) 2007-2013 by WIBU-SYSTEMS AG. All rights reserved.

  Communication mode changed successfully.

  Please replug your CmDongle to apply the changes.

Also Dongle wie angezeigt einmal rausziehen und wieder anstecken.
Und sie da 🙂 mein Papierkorb ist sofort wieder da und sichtbar. „Gelöschte Dateien“ erscheinen wir gewohnt.
Die Kontrolle zeigt nun einen Removeable-Device, wie das bei anderen USB-Sticks auch der Fall wäre.

C:\...\CodeMeter\Runtime\bin>cmu32  -s1-2345678 --show-config-disk
cmu32 - CodeMeter Universal Support Tool.
Version 5.00b of 2013-May-14 (Build 1067) for Win32
Copyright (C) 2007-2013 by WIBU-SYSTEMS AG. All rights reserved.

- CmStick with Serial Number 1-2345678 and version 1.16
  Version:            1.16
  Flash Size:         no real flash available
  Virtual Drive:      D:
  Configuration:      RemovableDisk with ActivePartition
  File System:        FAT32
  Boot-Code:          Int18 Boot Code
  Mdfa:               0x539

Weitere Hinweise zu dem Vorgehen finden sich auf den Microsoft und Wibu-Supportseiten hier:
http://support.microsoft.com/kb/2677246/en-us
http://www.wibu.com/de/faq-codemeter/question/single/warum-ist-mein-papierkorb-leer-wenn-ein-cmstick-angesteckt-ist-138.html
http://www.wibu.com/de/faq-codemeter/question/single/wie-kann-man-einen-cmstick-ohne-speicher-umkonfigurieren-145.html

VeriSign ‚Microsoft Authenticode‘ Class 3 Code Signing Digital Certificate für $99,–

Ich war mal wieder auf meiner WinQual Seite um festzustellen ob es im aktuellen Release auffällige Crashes gibt.
Dabei viel mir ein Link ins Auge, der ein VeriSign ‚Microsoft Authenticode‘ Class 3 Code Signing Digital Certificate für nur $99,– anbietet. Bei einem Normalpreis von $499,– ist das kein schlechter Preis!

Hier der Link auf die WinQual Seite:
http://winqual.microsoft.com/help/default.htm#obtaining_a_verisign_class_3_digital_id.htm

und hier der entsprechende Link direkt zu VeriSign:
https://securitycenter.verisign.com/celp/enroll/upsell?promo_code=THEDEAL99&application_locale=VRSN_US&originator=VeriSign:CELP&bundle_id=MSIECS002&enable_options=validity_1

Meine Lieblingstools

Hier mal eine Liste meiner Lieblingstools (nicht nur für die Software-Entwicklung).
Sowohl Freeware als auch Tools für die ich gerne Geld ausgegeben habe.

Und wie immer ist das natürlich auch eine Geschmacksache und über den Geschmack lässt sich bekannter Maßen auch streiten.

Kostenlose Tools in alphabetischer Folge

  • 7-Zip (http://www.7-zip.org/)
    Das rundum sorglos Paket, wenn es um Packen und Entpacken von Dateien geht.
  • Axialis IconWorkshop Lite (http://www.axialis.com/download/iwlite.html)
    Für mich der Beste Icon- und Bitmap Editor. Hier in der Lite Version wer kein Geld ausgeben will.
  • BugTracker.Net (http://sourceforge.net/projects/btnet/)
    Der TFS istprima für die aktuelle Projekt- und Entwicklungsarbeit. Aber als externes Portal und als Ideensamlung, oder auch als Vorstufe zum Filtern zwischen Second-Level-Suppport und der Entwicklung habe ich dieses Tool liebgewonnen. Flexibel, simpel, schnell, kein Wartungsaufwand.
  • Comment Reflower
    VS-2005: http://commentreflower.sourceforge.net/
    VS-2008 und VS-2010: http://www.kynosarges.de/CommentReflower.html
    Das Addin der Wahl um einfach Kommentare im Sourcecode zu formatieren.
  • Radio fx / ClipInc fx (http://www.tobit.de)
    Wer seine Musiksammlung einfach und legal erweitern will, kann dies mit diesem Tool machen.
  • Dependency Walker / Depends.exe (http://dependencywalker.com/)
    Unverzichtbar für die Analyse von ausführbaren Dateien. Besonders eben auch die Trace Funktionen, die auch das Aufspüren von Ladeproblemen bei COM Modulen unterstützt.
  • FileZilla (http://www.filezilla.de)
    Nicht unbedingt die tollste Öberfläche aber nützlich, schnell und effektiv.
  • Frhed (http://frhed.sourceforge.net)
    Der beste Hex-Editor, mit wichtigen Funktionen wie Ersetzen tauschen etc.
  • iTunes (http://www.apple.com/de/itunes)
    OK! Ich habe auch einen 20GB iPod. Aber dennoch ist iTunes für mich das beste Tool meine Musik zu verwalten. Ich habe mich mit dem Mediaplayer nie wirklich anfreunden können.
  • KeePass (http://keepass.info)
    Der Password-Safe! Wer viele Kennworte verwalten muss, ist froh komplexe Kennworte  verwenden zu können, aber sich nur eines merken zu müssen.
  • Notepad++ (http://notepad-plus.sourceforge.net)
    Ein Editor der mir vor allem wegen seiner erweiterten Funktionen für Lesezeichen (Zeilen mit Lesezeichen kopieren, löschen) wichtig ist. Früher habe ich Textpad verwendet nur wurde der einfach nicht vernünftig weiter entwickelt.
  • Sysinternal Suite (http://technet.microsoft.com/en-us/sysinternals)
    Die unentbehrlichen kleinen Helferleins um in den tiefen des Windows OS zu forschen. DbgView, Process Explorer und Monitor müssten geschrieben werden, wenn es sie nicht schon gäbe.
  • TCC LE (http://www.jpsoft.com/downloads/v11/tccle.exe)
    Wer das Geld für TCC nicht ausgeben will, bekommt einen guten CMD.EXE Ersatz, dem nur wenig zum großen Bruder TCC 11.0 fehlt.
  • TeamViewer (http://teamviewer.com/)
    Wer mal seinem älteren Vater/Mutter, Oma/Opa, oder dem Freund/Freundin schon mal am Telefon helfen musste, der freut sich über den TeamViewer! Mit dem Tool kann man das Problem, das man am Telefon in Worten kaum klären kann, schnell online lösen. Für den Privatgebrauch kostenlos! (Ansonsten sein Geld auch für eine Firma wert!)
  • TFS Power Tools (http://msdn.microsoft.com/en-us/vstudio/bb980963.aspx)
    Eigentlich muss man sich fragen warum diese Power Tools  nicht direkter Bestandteil des TFS sind. Aber es gibt sie ja zum Glück. (Besonders einen Blick wert ist die Windows Shell Extension)
  • WinMerge (http://winmerge.org)
    Wenn man öfters mal Reviews macht ist dies das Hilfsmittel der Wahl um Merges und Kontrollen von Änderungen von Sourcecode durchzuführen. 
  • WiX (http://wix.sourceforge.net)
    Wenn man auch etwas komplexere MSI Setup Projekte relativ einfach erzeugen will.

Tools, die (IMHO) ihr Geld Wert sind in alphabetischer Folge:

  • Acronis Home (http://www.acronis.de)
    Datensicherung der gesamten Festplatte, made easy. Dazu noch andere gute Tools (Clonen und Löschen von Festplatten). Für mich
  • Axialis IconWorkshop (http://www.axialis.com)
    Für mich der Beste Icon und Bitmap Editor. Wer kein Geld ausgeben will findet auch eine Lite-Version hier http://www.axialis.com/download/iwlite.html
  • CppDepend (http://www.cppdepend.com)
    Code Analyse mal ganz anders aber sehr effektiv (nicht ganz billig).
  • NOD32 von ESet (http://www.eset.de)
    Seit NOD32 der erste wirklich funktionierende Virenscanner unter Vista war bin ich bei ihm geblieben. Schnell, Effektiv. Macht das System nicht langsam. Klein und nicht mit überbordenden unnötigen Funktionen überfrachtet.
  • SpeedCommander (http://www.speedcommander.de)
    Da ich ein alter XTREE Fan war, habe ich mich nie an den Norton-Commander gewöhnen können. Aber mittlerweile habe ich die vielen integrierten Funktionen des SpeedCommanders schätzen gelernt. Ein zuverlässiges Tool für alles was man so mit Dateien machen muss. Tool einfach auch die FTP Integration, der Quickview, Synchronisation, einen kleinen pasablen Editor und manch anderes mehr.
  • TCC 11.0 (http://www.jpsoft.com)
    Das Beste CMD.EXE Substitut. Ich verwende das Ding seit alten 4DOS Zeiten. Ich kann genauso wenig ohne dieses Ding auskomen wie auch nicht ohne VA-X noch Programme schreiben kann. Auch als LE Version für den, der kein Geld ausgeben will http://www.jpsoft.com/downloads/v11/tccle.exe
  • TextPad (http://www.textpad.com)
    Über Editoren kann man sich bekannter Maßen streiten. Aber ich habe vor Jahren mir mal eine Lizenz gekauft und war eigentlich immer sehr glücklich mit dem Editor, obwohl in der letzten Zeit kaum noch etwas hier in der Entwicklung passiert. Vista wurde auch etwas verschlafen. Dennoch mag ich diesen aufgeräumten guten Editor.
  • Visual Assist (http://www.wholetomato.com)
    Das non plus ultra Addin für jeden Entwickler. Alt+M, ALT+G, ALT+O… all die netten Hotkeys, die man nicht mehr missen will, mit tollen Refaktoring Funktionen.
  • VMWare Workstation (http://www.vmware.com)
    Das Tool um viele Umgebungen auf einer Entwicklungsmaschine testen zu können. Mal kurz eine Beta zu installieren und und und… Virtual PC ist nett. VMWare Workstation ist besser.

Wer Lust hat kann ja seine Tools gerne als Kommentar ergänzen ❗
Vieles Gute kann man in dem unendlichen Angebot an Tools und Software leicht übersehen…

PS: Ich bin dann erstmal weg, ohne Internet und Laptop in der Sonne… also nicht wundern wenn ich mal nicht auf einen Kommentar antworte… 😉

Tipps & Tricks: Mal ganz schnell das MS-SQL Server 2008 Managment Studio Express nachinstallieren

Bei dem Management Studio für die 2005 EE war noch alles ganz einfach. Man schmeißt einfach den Installer an. Man klickt ein paar mal weiter und das war es auch schon. Nachdem ich VS-2010 installiert hatte wollte ich nun auch das passende Management Studio für die 2008 EE installieren. Also:

  • Download gemacht 
  • Setup gestartet
  • und 😕 was nun?

Das Setup und das was ich hier alles einstellen kann ist alles andere als intuitiv.

Ich mache es kurz. Man kann sich das ganze durch-die-Dialoge-hangeln sparen.
Man startet einfach die Installation mit dem folgenden Befehl von einer Befehlszeile:

SQLManagementStudio_x86_xxx.exe /q /FEATURES= SSMS /ACTION=Install

Statt xxx gebe man bitte einfach in DEU oder ENU an, je nachdem was man für eine Sprache hat.

Gefunden habe ich das hier auf diesem Link, hier finden sich auch weitere Anweisungen wie man sich durch die Dialoge quälen muss:
http://blogs.msdn.com/billramo/archive/2009/02/20/sql-server-2008-management-studio-express-released-to-the-web.aspx

Das Management Studio Express findet sich hier zum Download:
http://www.microsoft.com/downloads/details.aspx?familyid=08E52AC2-1D62-45F6-9A4A-4B76A8564A2B&displaylang=de

Mein „Baby“ ist nun „Kompatibel mit Windows 7“

Das meine Software auf allem läuft was Windows XP und später heißt war mir schon lange klar 😉 aber ein offizielles „Kompatibel für…“ ist ja schon noch was anderes.
Jetzt habe ich die kostenlose Zertifizierung für die Windows 7 Kompatibilität hinter mich gebracht.
In Klartext ganz offiziell: AG-VIP SQL in der Version 1.20.008 ist kompatibel mit Windows 7

Verglichen mit der Vista Zertifizierung, die wir bei einem 3rd Party Unternehmen (VeriTest) durchgeführt haben, muss ich sagen: Windows 7 kompatibel zu werden ist nicht schwer
Es war wirklich kein großer Aufwand!

Wer sich die Spezifikationen durchgelesen hat wird sehen, dass sich gegenüber der Vista Zertifizierung kaum was geändert hat. Wer also seine Software bereits Vista kompatibel hat, kann gleich einen Durchstart machen und es für Windows 7 auch probieren. Und das schöne: Es kostet nichts!
Ich habe es nicht versucht, aber ich vermute mal, dass genau die Version die ich für Vista eingereicht habe auch durch die Windows 7 Zertifizierung gekommen wäre.

Noch ein paar Anmerkungen:

  • Ich kann jeden ermutigen, den Test zu machen, wenn man sowieso schon ein Code Signing Zertifikat und einen 64bit Rechner zur Verfügung hat. Wenn man auf dem man 64bit Windows 7 virtualisieren kann ist die Zertifizierung wirklich einfach. Ich habe VMWare benutzt und das ist einfach ein super Werkzeug für so etwas.
  • Wie bei vielen Zertifizierungen wird viel zu viel Gewicht auf Installation und Deinstallation gelegt. Das war bei der Vista Zertifizierung auch schon so.
  • Bei der Vista Zertifizierung war noch klar, wie und wo man Waiver (Freistellungen) bekommt, z.B. für Komponenten von Drittherstellern, die Ihre DLLs nicht signieren. Dazu gehört ja auch Microsoft mit den DLLs der MFC 😉
    In diesem Zertifizierungsprozess, erfährt man, dass man sie evtl. benötigt, aber nicht wo man sie bekommt…
  • Manche in meinen Augen wertvolle Tests in der Vista Zertifizierung, wie zum Beispiel, die korrekte Behandlung von Crashes, scheinen vollkommen entfallenzu sein.
  • Der Test bei dem 3rd Party Unternehmen war weitaus tiefer als das was man bei dem Selbsttest macht. Jetzt genügt ja die Software zu starten und wieder zu beenden. Bei den Tests zu Vista sind wir beim ersten mal durchgefallen, weil hier ein Bug in der MFC mit dem Application Verifier gefunden wurde, der uns beim Testen nicht aufgefallen war  (Siehe 1, 2, 3
    Ich empfinde den Selbsttest als zu schwach um dann ein Windows 7 kompatibel Logo zu bekommen.
  • Man muss versichern, dass man keine Spyware zertifiziert oder andere böse Software erzeugt… gelinde gesagt ein Scherz. Bei einem 3rd Party Tester würde solche Spyware (hoffentlich) nicht durchkommen. Das hoffe ich doch wirklich mal! Jetzt muss man nur einen Haken setzen, und sich selbst bestätigen, dass man es nicht tut, obwohl man es evtl. doch tut… 😉
    Das mindert den Wert dieses Logos ungemein.
  • Wenn man früher Geld investierte für eine Zertifizierung, hieß das nicht, dass man deshalb bessere Software produziert. Aber 1000$ waren dennoch eine Schwelle über die nicht jeder Hanswurst mit seiner Mickey-Maus-Software gegangen ist.
    Jetzt bleibt als Schwelle nur noch der Kauf eines Code-Signing Zertifikates bei VeriSign und so was kostet ca. 500$ im Jahr.
  • Ich vermisse schon lange das Verbot anderer Techniken, zum Beispiel ein Verbot von Systemweiten Hooks, wenn man Windows X kompatibel sein will. Wenn dann sollte so etwas auch nur mit einem Waiver und klarer Begründung erlaubt werden.
    Nicht wenige dieser mies programmierten Hooks sorgen für Instabilität, unnützes Aufblähen von Prozessen und manchmal auch miese Performance.

Als Fazit bleibt für mich die Frage:
Was nützt ein Logo, dass man zu leicht bekommen kann?

Es bleibt eine Marketing-Aktion und genauso wurde die Vista und jetzt auch die Windows 7 Zertifizierung auch bei uns in der Firma eingestuft. Technischen Nutzen hat das ganze nicht wirklich.

Nett: Windows 7 und sein GodMode ;)

Alleine der Name macht einen ja schon neugierig…

Was verbirgt sich dahinter?
Nichts anderes als eine Explorer Ansicht, die alles aus den Systemsteuerungspanels in einer Liste anzeigt. Nett…

Wie macht man das?

  1. Man legt auf dem Desktop (oder sonst wo) ein neues Verzeichnis an.
  2. Dieses Verzeichnis benennt man dann um in GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
    Wobei der Name vor dem Punkt keine Rolle spielt. Es geht nur um die Extension und die GUID.
  3. Fertig! Das Symbol verändert sich dann auf das Symbol der Systemsteuerung.

Gefunden in: Understanding Windows 7’s ‚GodMode‘

Nachtrag 1: Das Ganze geht sogar unter Vista 32bit!
Nachtrag 2:
Es gibt Meldungen, dass dieser Link auf dem Desktop eines Vista 64bit Systems den Explorer zum Absturz bringt!
Evtl. sollte man den Ordner testweise in diesem Fall erstmal in einem Unterordner anlegen.
Nachtrag 3:
Auch Kay Giza berichtete ausführlich über diesen Modus, ich hatte dies allerdings übersehen.
http://www.giza-blog.de/Windows7VistaErweiterteSystemsteuerungAktivierenED7BA4708E54465E825C99712043E01C.aspx

Installation älterer Software auf Windows-Vista oder Windows 7

Jetzt wo sich Windows 7 langsam immer weiter verbreitet werden manche Benutzer feststellen, dass Windows 7 so viel anders als Vista nicht ist.
Insbesondere wenn es um Probleme mit älterer Software geht.
Ja es gibt den XP-Modus unter Windows 7, aber manchmal geht es eben doch mit ein paar Tricks und man die Software richtig installieren ohne XP-Mode-Overhead.

Ich habe die Erfahrung gemacht, dass die Virtualisierung durch UAC einiges leistet und dafür sorgt das einiges an Software unter Vista und Windows 7 laufen kann.
Ansonsten kann man manchmal nachhelfen, wenn man dem Programmen auf die entsprechenden Ordner in Program Files und HKLM in der Registry die Rechte für einen normalen Benutzer auf Vollzugriff setzt.
Ich mache dies nur für die Teiläste dieses Programmes, insofern kein allzu großes Sicherheitsrisiko, aber es wirkt oft Wunder. Unter XP habe ich damit ältere Siedler Versionen zum Laufen gebracht ohne das man Administrator sein musste 😉

Leider gibt es aber auch Fälle in denen die Software schon die Installation verweigert. Auch hier kann man manchmal auf einem XP Rechner installieren und dann die Software kopieren.
Aber es gibt auch hier Tricks, wenn einfach nur die Versionnummer falsch geprüft wird (was leider ziemlich oft passiert).

In meinem Beispiel war es RC-WinTrans, dass die Installation schon unter Vista verweigert hat.
Ein Blick mit Orcas in die MSI Datei zeugt eine falsche Versionsprüfung:

Installation unter Vista Windows 7-1

Unschwer zu erkennen, dass hier explizit auf die unterstützten Versionen geprüft wird und die Version 6.x für Vista und Windows 7 eben nicht durch diesen Test abgedeckt sind.

Mit Orcas ist das schnell geändert:

Installation unter Vista Windows 7-2

Und siehe da. Nicht nur die Installation läuft einfach und glatt.
Die ganze Software arbeitet perfekt unter Vista und Windows 7.

BTW: Wenn man eine EXE hat, die die Installation ausführt, dann kann man versuchen über den Karteireiter Eigenschaften der EXE Datei, den Kompatibilitätsmodus auf Windows XP SP2/SP3 zu setzen. Auch dann gelingt einem oft die Installation selbst wenn eine falsche Versionsnummer intern im Setup geprüft wird.

50% Nachlass bis zum 31.08. bei Axialis auf den IconWorkshop

Der IconWorkshop von Axialis ist mein bevorzugter Editor für Bitmaps und Icons. Der IconWorkshop integriert sich in Vs-2005 und VS-2008 über ein Plugin.

Wer den IconWorkshop 6.5 noch nicht hat, der hat die Chance bis morgen den 31.08.2009 noch 50% Rabatt zu bekommen. Die Sommerrabatt Aktion gilt auch für alle anderen Axialis Produkte.

Alles weitere bei Axialis:
http://www.axialis.com/purchase/

Axialis

Geschafft: Mein Software-Baby ist „Certified for Windows Vista“

Obwohl ich im Urlaub bin hat mich diese wirklich nette Nachricht von VeriTest erreicht:

Congratulations! AG-VIP SQL has successfully completed certification testing at VeriTest for the Microsoft “Certified for Windows Vista” logo program.

PS: Baby ist gut. AG-VIP SQL ist mittlerweile ein mittlerer Bolide… 😀