Imho läuft die Virtualisierung eh nur, wenn Du kein Manifest in der Datei eingebunden hast. Sobald das drin ist, wird nicht mehr virtualisiert, sondern halt ein Fehler ausgespuckt, wenn Du nicht die Rechte für den Zugriff hast.
Ist auch irgendwie logisch - Virtualisierung ist ja nur als Übergangslösung gedacht (ausdrücklich ohne Garantie daß es sie in zukünftigen Windows-Versionen immer noch geben wird), für Programme die noch nicht auf Vista angepasst sind - sobald das richtige Manifest drin ist, ist das Entwickler ja Vista-aware.
Allerdings: Microsoft hat sich schon etwas dabei gedacht... vielleicht solltest Du halt nochmal ein paar Schritte zurückgehen und das Design an sich überdenken, das in
HKLM bzw. allgemein einen global beschreibbaren Registry-Schlüssel benötigt?
Der Ordner selber sollte unter Vista dann C:\ProgramData\ sein (sagt zumindest HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Explorer\Shell Folders\Common AppData\, das meist äquivalent zu den Shell-Funktionen ist). Wichtig: dort NICHT mehr der "Application Data"-Unterordner (aber da die Shell eh immer das richtige Verzeichnis zurückgibt...). LogoUser1, ein eingeschränkter User aus der Vista-Logotest-Umgebung, kann dort auch einen Ordner anlegen, ist also unter Vista genauso.
PS: Egal, dann im falschen auch geantwortet