Freitag, 27. Februar 2009

MSDN Premium mit Visual Studio abzugeben

Gestern Abend habe ich auf der .NET Usergroup Franken den restlichen Gewinnern meiner Verlosung ihr Visual Studio 2008 übergeben. Weiter gab es während des Vortrags Bücher für richtige Fragen, die trotz (älteren) Themen wie Visual Studio 2005 immer wieder gerne angenommen wurden.

Heute ist es mal wieder so weit, ich verlose eine weiter MSDN Premium mit Visual Studio Team System. Was müsst ihr dafür tun? Nun, da ich nicht besonders erfinderisch bin, verlinkt einfach auf meinen Blog http://michael-schwarz.blogspot.com/ oder http://netmicroframework.blogspot.com/ und schreibt einen Kommentar hier auf dieser Seite mit dem entsprechenden Link auf eure Seite.

Die Aktion läuft wieder 2-3 Wochen. Die Gewinne könnt ihr euch beim nächsten Treffen der .NET Usergroup Franken dann abholen. Ich wünsche jetzt schon mal viel Glück.

Nebenbei: wer sich noch eine alte Visual Studio 2005 Testversion herunterladen möchte, die gibt’s jetzt wieder, und zwar auf der Getting Started with Microsoft Windows Embedded CE 6.0, braucht man z.B. für erste Gehversuche mit dem .NET Micro Framework.

MS Support hilft Microsoft

Nun, ihr ahnt es schon, aber ich muss das einfach noch loswerden. Nachdem ich den Microsoft Support Call zum Thema Eingabe von c:\Programme wieder geöffnet habe, habe ich eben einen Anruf vom Microsoft Next Level Support erhalten. Die zwei Englisch sprechenden Microsoft Support Mitarbeiter haben die Lösung zu dem Problem offiziell als Lösungsvorschlag angenommen. Leider wird es kein Hotfix oder ähnlich mehr für Windows Vista geben.

We are taken your solution in account in future OS. For current OS we will not provide a hotfix for security reasons. In Windows 7 Beta we have the same behaviour. Hopefully it get fixed for release version which is the job of the development team.

It was my pleasure to talk to you today. Following our telephone conversation I will proceed further with the temporary archive of the SRZ….

Microsoft wird diese Lösung evtl. auch als KB Artikel verfassen, das Nutzungsrecht haben sie auf jeden Fall eben schon mal bei mir eingeholt. Mal sehen, ob ich (Michael Schwarz Support) noch ein paar Bugs oder Lösungen finde.

Mittwoch, 25. Februar 2009

Wie geht’s weiter mit den Web Browsern?

Der Internet Explorer 8 lässt immer noch auf sich warten, auch wenn bereits auf manchen Blogs etwas vom April steht.

Währenddessen versuchen Web Entwickler die immer noch recht hohe Anzahl der IE 6 Installationen zu verbannen. Mit Hilfe von veränderten Web Seiten machen sie die Internetnutzer darauf aufmerksam.

Gleichzeitig wurde erst vor kurzem der neue Internet Explorer 6 für Windows Mobile vorgestellt. Dieser verwendet die Render Engine vom IE 6 und die JavaScript Engine vom IE 8, und zeigt die Web Seiten verglichen mit dem alten PocketIE natürlich tausendmal besser an, aber eben wieder nur veraltet. Davor hatten wir alle auf DeepFish gehofft, ein Browser, der Screenshots zum Browser geschickt hat, anstatt selber zu rendern, doch daraus wurde nichts. (Wie hieß es da nochmal: Enhanced Browsing for your Mobile Device.)

Die letzten Monate habe ich immer wieder Bugs in der aktuellen Beta des IE 8 gefunden. Soll ich mir vielleicht den IE 8 Blocker installieren?

Die Welt ist einfach noch nicht bereit für den IE 8. Stephan schreibt darüber, was den Firefox so beliebt macht, auch wenn ich dem nicht zustimmen kann, denn Plug-Ins braucht man ich nicht wirklich, hatte mit verschiedenen Plug-Ins zu viele Probleme.

Heute lese ich dann, dass Microsoft die Gazelle frei lässt:

Der von Microsoft angekündigte Webbrowser "Gazelle", soll mit einem neuen technischen Konzept aufwarten. Wie Netbux berichtet, umfasst das Konzept einen sehr schlank und effizient gehaltenen Browser-Kern. Jede einzelne aufgerufene Web-Anwendung soll von ihm eigene, unabhängige Ressourcen und Prozesse zugewiesen bekommen.

Wow, ist das jetzt etwa die Antwort auf meinen Wunsch, einen Web Browser ohne die ganzen Tools und Features zu bekommen? Eine Render Engine, die alle Hardwarekomponenten verwendet, um HTML so schnell wie möglich zu rendern?

Je mehr man über Gazelle liest, umso häufiger kommen Begriffe auf wie Browser OS, also einem Web Browser Betriebssystem.

Und sicher(-er) soll das ganze auch noch sein:

Gazelle's security model is centered around protecting principals from one another by separating their respective resources into hardware-isolated protection domains. Any sharing between two different principals must be explicit using cross-principal communication (or IPC) mediated by Browser Kernel.

Ach ja, fast hätte ich es vergessen: Apple hat ja erst vor kurzem seinen neuen Safari 4 auf die Menschheit losgelassen, endlich auch im richtigen Windows Thema. Der ist natürlich viel schneller als Google Chrome, logisch.

Ob Gazelle wirklich etwas taugt, wird man abwarten müssen. Ich bin schon mal richtig gespannt, denn die Hoffnung stirbt als letztes. In wie weit das in den Internet Explorer einfließt, weiß natürlich niemand.

Für diesen Befehl ist nicht genügend Serverspeicher verfügbar

In den letzten Wochen habe ich immer wieder mal große Dateien größer als 50 GB über Rechnergrenzen kopieren müssen. Ab und an habe ich folgende Fehlermeldung bekommen:

Der Vorgang konnte aufgrund eines unerwarteten Fehlers nicht durchgeführt werden. Notieren Sie sich den Fehlercode, da dieser eventuell bei der weiteren Problembehebung hilfreich sein kann:

Fehler 0x8007046A: Für diesen Befehl ist nicht genügend Serverspeicher verfügbar.

Ordner kopierenKomischerweise ist der Fehler immer dann aufgetreten, wenn ich von einem UNC Pfad etwas auf eine USB Platte kopieren wollte, das scheint aber nur Zufall gewesen zu sein.

Weitere Nebenwirkung war, dass man danach auf den Server weder per UNC noch per Remote Desktop zugreifen konnte.

Nach einer Recherche im Internet habe ich einen Registryeintrag gefunden, der das Problem (bis jetzt) behoben hat.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\IRPStackSize

Unter LanmanWorkstation gibt es den gleichen Parameter. Beide habe ich sowohl auf dem Client als auch auf dem Server auf 80 (dezimal) gestellt, das scheint wohl der Maximalwert zu sein. Und siehe da, es funktioniert!

Noch ein letztes Wort zu C:\Programme und C:\Program Files

Wer mein Blog liest, der weiß, dass ich mich über das Fehlverhalten des Windows Explorers unter Windows Vista als auch der aktuellen Beta von Windows 7 aufrege. Wie es aussieht, ist das ja alles so gewollt, und wir Deutsche müssen uns endlich abfinden, dass das eben nicht geht. (Oder doch nicht? Weiter unten ist die Lösung, für alle, die nicht weiterlesen möchten!)

Während meiner Tests habe ich die verschiedenen Sprachversionen noch einmal unter die Lupe genommen. Der übersetzte Begriff für Program Files kommt immer aus der desktop.ini:

[.ShellClassInfo]
LocalizedResourceName=
    @%SystemRoot%\system32\shell32.dll,-21781

In der shell32.dll steht an Position 21781 eben Programme, im Französischen wird der Text Programmes genommen.

Um das fehlerhafte Verhalten in den Deutschen Versionen zu erklären, muss man eine ältere Windows Version installieren, z.B. Windows XP. Bei Windows XP hat man das Programme Verzeichnis auch so benannt, also das lag so wirklich auf der Festplatte. Im Französischen wurde Program Files verwendet, der übersetzte Text kam aus der desktop.ini.

Mit Windows Vista wollte man nun den besseren Weg gehen, Verzeichnisse sollte sprachunabhängig sein. Da es aber noch einige Programme gibt, die z.B. beim Installieren hart-kodiert C:\Programme verwenden, hat man die sogenannten symbolischen Verknüpfungen eingeführt. Diese sollten andere Programme automatisch auf die richtigen Verzeichnisse oder Programme umlenken.

Folgende Fehler gibt es bei den symbolischen Verknüpfungen:

  • man kann im Windows Explorer nicht c:\Programme eingeben
  • ein .NET Programm lässt jeden Zugriff auf c:\Programme nicht zu, man erhält eine DirectoryNotFoundException: Ein Teil des Pfades “c:\Programme” konnte nicht gefunden wrden.
  • ein .NET Programm kann auch keine Dateien unter c:\Programme öffnen

Also, bei mir funktionieren die symbolischen Verknüpfungen nicht, oder ich habe den Sinn immer noch nicht verstanden.

Endlich eine Lösung

Endlich habe ich mich getraut, und c:\Programme über die Kommandozeile gelöscht. Bitte nicht über den Windows Explorer, denn sonst erwischt man das echte Verzeichnis c:\Program Files.

  • Start –> Ausführen und cmd.exe eingeben und mit Administratorrechten ausführen
  • rd c:\Programme löscht dann die Verknüpfung

Jetzt kann ich zwar keine alten Programme mehr verwenden, die direkt auf C:\Programme schreiben möchten, aber das will ich auch nicht.

Wer trotzdem den symbolischen Link braucht, kann diesen (wie auch eigene) mit folgendem Befehl wieder erstellen:

  • Start –> Ausführen und cmd.exe eingeben und mit Administratorrechten ausführen
  • ins Rootverzeichnis mit cd /D %systemdrive%\ wechseln
  • mklink.exe /J Programme “c:\Program Files” erzeugt eine dort als Verbindung deklarierte Verknüpfung
  • attrib +H c:\Programme versteckt diese Verknüpfung

Toll, nach dem manuellen Ausführen von mklink.exe gehen auch alle meine .NET Testprogramme richtig. Wo ist nur der Fehler, warum geht das auf einem sauberen Windows Vista nicht richtig? Ich werde wohl doch keine Ruhe geben, und gleich einen virtuellen PC basteln, Nr. 1098.

Wie immer gilt, dass ich keine Garantie übernehmen kann. Also, vielleicht vorher alles ordentlich sichern oder so.

Booten von einem USB Stick – Warum funktionieren nicht alle USB Sticks?

Vor einiger Zeit habe ich erklärt, wie man z.B. Windows 7 von einem USB Stick anstatt einer DVD installiert. Dabei haben einige Anwender berichtet, dass ihre USB Sticks leider nicht booten möchten. Das Problem ist, dass der Bootsektor fehlt. Deswegen hier noch einmal eine kurze Anleitung zum Installieren von Windows 7 über einen USB Stick:

Um den USB als Bootimage zu verwenden, muss man ihn erst einmal formatieren, und dann eine aktive Partition anlegen. Das geht unter Windows Vista mit diskpart.exe:

  • Start –> Ausführen anklicken, dann diskpart.exe starten
  • lis dis eingeben um alle lokalen Laufwerke anzuzeigen
  • Hat man den USB Stick gefunden (z.B. anhand der Größe), diesen mit sel dis N auswählen, wobei N die Datenträgernummer ist, die bei 0 anfängt zu zählen, bei mir ist es das vierte Laufwerk, also verwende ich sel dis 3.
  • Mit lis par kann man sich die aktuellen Partitionen anzeigen lassen.
  • Mein USB Stick hat nur eine Partition, diese wähle ich mit sel par N aus, wobei N die Partition ist (Achtung!! Hier fängt die Nummerierung wieder bei 1 an); für die erste Partition schreibe ich also sel par 1.
  • Mit format fs=NTFS LABEL=”Windows 7” QUICK OVERRIDE formatiere ich den USB Stick, das geschieht auch gleich ohne zusätzliche Nachfrage.
  • Ist die Formatierung beendet, setze ich mit active die aktuelle Partition auf aktiv und beende DiskPart mit exit.

Danach muss man den Bootsektor auf den USB Stick übertragen, das geht mit einem Tool auf der Windows 7 DVD. Dafür einfach die ISO Datei mit dem 7-Zip Manager entpacken, und danach folgenden Befehl ausführen:

  • Start –> Ausführen anklicken, dann cmd.exe starten
  • Nun in das entpackte ISO Verzeichnis wechseln, bei mir ist es cd \ISO\Win7
  • Jetzt in das Unterverzeichnis boot mit cd boot wechseln, und dort den Befehl bootsect /nt60 G: (wobei hier G: mein USB Stick Laufwerksbuchstaben ist)

Danach werden einfach noch alle Dateien von der ISO Datei kopiert.

Donnerstag, 19. Februar 2009

Deutsche Windows Vista Benutzer im Nachteil

Nachdem ich hier, hier, hier und hier schon über das Fehlverhalten von Windows Vista (die Beta von Windows 7 ist auch betroffen), habe ich verschiedene Sprachversionen von Windows Vista ausprobiert, und bis jetzt leider noch keine gefunden, bei der das Problem auch auftritt.

Interessant ist, dass in vielen Sprachen das Programme Verzeichnis Program Files heißt, d.h. da gibt es gar nichts anderes als den englischen Namen.

Vielleicht liegt es an einem Hotfix, Service Pack oder irgendeiner Software, die auf meinem Rechner installiert ist. Deswegen werde ich jetzt mal meinen Windows Update Server die anderen Sprachen auch herunterladen lassen. Mal sehen, vielleicht weiß ich morgen mehr.

Google mag das französische Windows Vista nicht

Heute habe ich unter Hyper-V ein französisches Windows Vista Business installiert. Nach der Installation bemerkte ich, dass Windows Vista Business im Französischen gar nicht Business so heißt:

Windows Vista heißt im Französischen Vista Professional

Ich habe schnell mal auf der französischen Wikipedia Windows Vista Seite nach den Versionen geschaut, und tatsächlich heißt Windows Vista Business in Frankreich Windows Vista Professional.

Ein Versuch den Wikipedia Artikel mit Google ins Deutsche zu übersetzen machte mich dann sprachlos: behauptet Google doch, dass Windows Vista Professional (französisch) auf Deutsch übersetzt Windows XP Professional ist.

Windows Vista Professional

Mittwoch, 18. Februar 2009

c:\Programme und c:\Program Files – langsam nervt es mich

Hier mal noch ein paar Tests zum Thema c:\Programme und Zugriff verweigert:

  • c:\Programme im Windows Explorer eingeben, geht nicht
  • c:\Programme\desktop.ini geht, auch jede andere Datei in c:\Program Files, dem eigentlichen Ort
  • c:\Programme\Windows NT geht überraschender Weise auch, dann sieht die Verzeichnisstruktur nur komisch aus, es taucht zweimal c:\Programme auf

image

Vergleicht man das weiter mit c:\Benutzer, dann stellt man fest, dass dort auch die Unterverzeichnisse in den Vorschlägen auftauchen, d.h. die beiden Verzeichnisse reagieren irgendwie unterschiedlich.

image

Hm, wer hat das bitte so gewollt?

Ich habe jetzt mal auf meinem Rechner alle versteckten Dateien sowie die Systemdateien anzeigen lassen, und da muss ich überrascht feststellen, das Programme, Documents and Settings, Dokumente und Einstellungen solche Links sind, aber c:\Benutzer nicht.

image

Und noch ein Hinweis: klickt man auf die Eigenschaften des Benutzer Verzeichnisses, dann taucht auf dem Freigabe Tab der Begriff Users auf:

image

Zusammenfassung: c:\Benutzer geht wohl deswegen nicht, weil dieses nicht wie c:\Programme zweimal auftaucht, einmal mit und einmal ohne dem Linksymbolzusatz.

Jetzt ist jemand anderes dran, ich kann nicht mehr.

Muss Microsoft Englisch Kurse anbieten? – Oder was genau ist “By Design”?

Ich habe in den letzten Monaten ein Dutzend Bugs oder ein in meinen Augen fehlerhaftes Verhalten von Microsoft Produkten gemeldet. Immer öfters bekomme ich nun folgende Antwort:

Bezüglich der beschriebenen Problematik des Cases habe ich eine Stellungsnahme vom Microsoft Global Technology Center eingeholt.

Das Ergebnis ist, dass das Verhalten by Design ist.

In dem letzten Support Call ging es um die Eingabe / Autovervollständigen von C:\Programme auf einem Deutschen Windows Vista (und Windows 7). Gibt man im Windows Explorer nur den Anfang, also z.B. C:\Prog ein, dann zeigt Windows eine Auswahl an Verzeichnissen mit diesem Anfang an.

image

Wählt man nun c:\Programme aus der vorgeschlagenen Liste aus, erhält man eine Fehlermeldung:

image

Für alle, die nicht wissen, warum das eigentlich so ist, nachfolgend mal die Erklärung vom Microsoft Global Technology Center:

Behavior is not a bug, its by design.

How it works: Even on a German Vista, the folder "C:\Programme" doesn't exist. The correct folder name is "C:\program files".

So you need to type "c:\program files" in explorer in order to access that directory. If on a german system or German mui, explorer will then show the "programme"  directory.

Background: Explorer is using the name from internal ressources like desktop.ini to display the localized folder name. Thus you will need to enter "c:\program files". But there is more to consider. On the German system, there exists a hardlink named "C:\Programme". This hardlink is only used for older applications which are not designed for Vista, in order to install in the correct directory. So for example you can go into  "C:\programme" by using CMD, but when you try to look whats in by using "dir *.*" you will get nothing, as it is no directory.

As Windows Explorer cannot use this hardlink itself but needs a real directory instead, you will hit the "access denied" error when trying to use Explorer and  typing "C:\Programme" into its address bar.

Ok, das wussten wir ja schon, aber warum wird dann nicht C:\Program Files anstatt C:\Programme angeboten? Oder warum kann der Windows Explorer nicht einfach diesen Link öffnen, so wie er es ja kann, wenn man mit der Maus drauf klickt?

Ich finde es schon sehr verrückt, dass man, wenn man mit der Tastatur arbeiten will, so etwas wie die Vorschläge gar nicht verwenden kann. Arbeitet man mit der Maus, dann kommen diese Vorschläge ja gar nicht, warum bitte gibt es dann diese Funktion?

Mir sieht das alles nach einer sehr einfach gestrickten Umsetzung von gleichen Pfaden in unterschiedlichen Sprachversionen aus.

Schade Microsoft, das alles immer By Design ist. Vielleicht zahlt ihr meinem Opa mal einen Englisch Kurs, denn der weiß mit Program Files nichts anzufangen.

Nebenbei ist zu erwähnen, dass C:\Benutzer aus so ein Link ist, und dort funktioniert es. Also muss der Windows Explorer Unterschiede machen. Ich vermute mal, dass es an den Rechten der Verzeichnisse liegt.

Freitag, 13. Februar 2009

Ajax.NET M! kommt ins Networking Toolkit

Ajax.NET M!, eine für das .NET Micro Framework angepasste Version von Ajax.NET Professional wird nun in meine kleinen Netzwerk Bibliothek Sammlung aufgenommen.

Auf CodePlex ist nun ein HTTP Server, ein DNS Resolver als auch eine XBee Bibliothek verfügbar. Alle DLLs werden unter den drei Frameworks (Compact, Micro und Desktop) laufen, auch wenn dafür noch ein paar Anpassungen gemacht werden müssen.

Besonders freut es mich, dass die XBee Bibliothek schon nach kurzer Zeit in vielen Projekten läuft, auch z.B. bei den verschiedenen Wettbewerben wie Dare To Dream Different Challenge oder Spark Contest.

Dienstag, 3. Februar 2009

Ohne Lautsprecher keine Videos unter Windows 7 Media Center

Wow, da staunte ich nicht schlecht, als ich vor ein paar Tagen feststellen musste, dass ohne Lautsprecher unter Windows 7 im Windows Media Center keine Videos abgespielt werden konnten. Im Büro haben wir nur vereinzelt Lautsprecher, an dem Test PC mit Windows 7 war gerade keiner dran.

Windows 7 erkennt, ob Lautsprecher am PC angeschlossen sind oder nicht. Das funktioniert auch mit intern bereits eingebauten Lautsprechern.

Ich meine, dass man dann aber trotzdem in der Lage sein sollte, die Videos abspielen zu können. Was ist mit all den Menschen, die taub sind, und auch mit Lautsprecher nichts hören?

Wer bei Microsoft Connect registriert ist, kann mit abstimmen.

Hier noch ein paar weitere meiner Bugs bzw. anders gewünschte Verhalten in der derzeitigen Beta von Windows 7:

Adroid Handy in Deutschland – Das T-Mobile G1 ist da!

Man kann es nicht übersehen: das G1 Handy ist nun auch in Deutschland erhältlich, aber ist es eine Alternative zum iPhone, oder zu anderen Handys (Symbian, Windows Mobile,…)?

image