Neuer Artikel von mir auf CodeProject
Link: http://www.codeproject.com/vista/AeroGlassLegacyWindowsApp.asp
Seit gestern ist ein neuer Artikel von mir auf CodeProject zu lesen. Er zeigt, wie man für Vista in seine Applikation Aero Glass einbauen kann und gleichzeitig aber standardmäßige Windows Controls dabei immer noch gut ausschauen. Dieser Artikel, bzw. der zugehörige Sourcecode, haben mich die letzten zehn (!) Wochen in meiner Freizeit beschäftigt, drum vote, wer da mag, mit einer guten Note für den Artikel :-). Besonders das flickerfreie transparente animation control und - man glaubt es kaum - das edit control haben echt Nerven gekostet. Aber so eine transparente Animation schaut halt schon g'schmeidig aus.
Neues Ungemach im Namensstreit
Hatte sich NettoSport erst vor knapp zwei Jahren umbenannt in επτ€σ um den ewigen Namensproblemen mit ähnlich klingenden Klitschen aus dem Weg zu gehen, droht jetzt neuer Ärger. Es gibt ein ungarisches Kinderbuch mit dem neuen Namen, das fuer schlappe 1,498 Forint verkauft wird. Hier der Beweis:
Überschreiben von Dateien mit einem MSI verhindern
Jetzt habe ich schon eine ganze Weile mit WiX rumgespielt, aber einfach keinen Weg gefunden, das Überschreiben von etwa schon vorhandenen Dateien mit Bordmitteln zu verhindern. Also, hingesetzt und eine Custom Action DLL geschrieben, die sich hier findet.
Man bindet das Dingens in Form eines Binary Tags in den Product Tag mit ein:
<Binary Id='CheckTargetDir' SourceFile='custact.dll' />
Dann kopiert man die DLL in die Project Root und ergänzt vor und innerhalb der InstallExecuteSequence die Custom Action:
<CustomAction Id='CheckingTargetDirectoryFiles' BinaryKey='CheckTargetDir' DllEntry='CheckTargetDir' /> <InstallExecuteSequence> <Custom Action='CheckingTargetDirectoryFiles' After='CostFinalize'>NOT Installed</Custom> </InstallExecuteSequence>
Und schon wird jede Datei, die von der Installation ins Zielverzeichnis kopiert werden würde, überprüft, ob sie vielleicht schon da liegt. Ist das der Fall, wird die Installation mit einer Fehlermeldung abgebrochen. Spooky, eh!?!
Der wichtigste Registry Value in Vista
Der wichtigste Registry Value in Vista ist wohl eindeutig der, nachdem ich am meisten googeln muß, weil ich ihn immer wieder vergesse. Und damit ich hier immer wieder nachschauen kann, schreibe ich das jetzt mal hier nieder:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
CurrentVersion\Policies\system]
"LocalAccountTokenFilterPolicy"=dword:00000001
Mit diesem Key und einer ausgeschalteten Firewall kann man eine Vista Box, die nicht einer Domäne gejoined ist, übers Netzwerk erreichen (also File Services und alles RPC-Gedöns).