Forums Neueste Beiträge
 

Vista/7 HKLM Registrieeintrag mit VB ohne erhöhte Rechte

26/03/2010 - 11:09 von Wilfried Dietrich | Report spam
Hallo,

meine VB-App. ist direkt unter "C:\" installiert und wird mit
normalen, nicht erhöhten Rechten ausgeführt.
Nun möchte ich aus meiner App. für eine andere App. und
andere Benutzer div. Einstellungen in der Registry ablegen.
Ich dachte mir, nehme ich einfach meine Registryklasse
(die, wie ich glaube von Peter Götz stammt "GSSaveSetting",
"GSGetSetting" etc.und bis dto. ihre Dienste tat) und speichere
diese Daten in HKLM\Software\MeineSoftware\...
Bis einschl. Windows XP super, alles prima, funktioniert wie gewünscht.
Nur bei Vista und W7 sind diese Eintràge nicht mehr unter
HKLM\Software\MeineSoftware\... sondern irgendwo in
HKCU\Software\Classes\VirtualStore\MACHIN\Software...,
außer ich mache einen Rechtsklick auf meine App. und dann
"Als Administrator ausführen".

Meine App. soll nicht mit erhöhten Rechten ausgeführt werden müssen.
Wie kann ich, ohne erhöhte Rechte, bei Vista / 7 in HKLM schreiben?
Oder sollte ich auf eine INI - Datei ausweichen?
Wie würdet Ihr das lösen?

Vielen Dank im Voraus.
Gruß
Wilfried
 

Lesen sie die antworten

#1 Frank Müller
27/03/2010 - 04:47 | Warnen spam
Hallo Wilfried,

Wilfried Dietrich wrote:

meine VB-App. ist direkt unter "C:\" installiert und wird mit
normalen, nicht erhöhten Rechten ausgeführt.
Nun möchte ich aus meiner App. für eine andere App. und
andere Benutzer div. Einstellungen in der Registry ablegen.



Bis jetzt noch ok,

Ich dachte mir, nehme ich einfach meine Registryklasse
(die, wie ich glaube von Peter Götz stammt "GSSaveSetting",
"GSGetSetting" etc.und bis dto. ihre Dienste tat) und speichere
diese Daten in HKLM\Software\MeineSoftware\...
Bis einschl. Windows XP super, alles prima, funktioniert wie
gewünscht.



Aber garantiert nur dann wenn der User unter XP oder
auch W2K als Admin unterwegs war.

Nur bei Vista und W7 sind diese Eintràge nicht mehr unter
HKLM\Software\MeineSoftware\... sondern irgendwo in
HKCU\Software\Classes\VirtualStore\MACHIN\Software...,



Ja weil genau deswegen der VirtualStore von MS
"erfunden" wurde um alten Programmen zu
ermöglichen irgendwie doch zu funktionieren.
Das bezieht sich nicht nur auf Zweige der Registry
sondern auch auf das Programmverzeichnis z.B.

außer ich mache einen Rechtsklick auf meine App. und dann
"Als Administrator ausführen".



Eben, genau dann bist du unter Win7 / Vista ein "echter"
Administrator und hast die entsprechenden Rechte.
Anmeldung beim Rechnerstart mit Admin-Account reicht
nicht mehr im Gegensatz zur XP/W2K/NT4

Meine App. soll nicht mit erhöhten Rechten ausgeführt werden müssen.
Wie kann ich, ohne erhöhte Rechte, bei Vista / 7 in HKLM schreiben?



Wenn du zwingend in HKLM schreiben musst, dann mache das
beim Setup deiner Anwendung, da hast du die Rechte.
Spàter haben da keine Daten mehr etwas zu suchen.

Oder sollte ich auf eine INI - Datei ausweichen?



Kannst du natürlich machen, aber auch die darfst du
nicht z.B. ins Programmverzeichnis speicher, dann
bekommst du das gleiche Problem.

Wie würdet Ihr das lösen?



Schreibe deine Daten in einen Bereich wo der
User Zugriffsrechte hat, egal ob Registry oder
ini.

DU könntest natürlich auch die UAC ausschalten,
aber das kannst du von deinen Usern nicht verlangen.
Und ist auch nicht sinnvoll. Allerdings, wenn du
deinen Speicherort nicht àndern möchtest, dann
lebst du halt mit dem VirtaulStore, funktioniert
ja auch wie du sagst. (leider immer nocht aus
Sicht eines Programmierers, aus Sicht des Users
ist das natürlich super)

Gruß,
Frank

Vielen Dank im Voraus.
Gruß
Wilfried

Ähnliche fragen