Frage

Ich schrieb eine Reihe von Unit-Tests der Windows-Registrierung Lesen / Schreiben zu decken. Sie nutzen die CRegKey ATL api.

Diese hat gut funktioniert auf meinem Desktop-Rechner von XP Pro, aber wenn die Tests kamen auf der Build-Maschine laufen zu lassen - Windows 2008 x64-Server - die Tests mit ERROR_ACCESS_DENIED fehlschlagen, wenn eine Taste über erstellen

.

Der Benutzer, der in den Build-Rechner angemeldet ist, gehört zur Administratorgruppe.

Google bringt eine Liste von, wie eine Registrierung im Editor erstellen und Msdn hält mich geben Seiten fehlen, wenn ich auf die Links klicken.

Was ich wissen müssen, ist, was muss ich die Tests durchführen, ermöglichen passieren, wenn sie auf dem Server ausgeführt werden? Ich denke, es Sicherheitsattribute erfordert, aber ich habe noch nie in diese vertieft, damit ich nicht tun wissen, wo man anfangen soll. Jede mögliche Hilfe würde geschätzt.

War es hilfreich?

Lösung

Die Tage der Programme ändern oder globale Registrierungsschlüssel zu schaffen sind vorbei und erledigt. Es funktioniert immer noch auf Ihrer XP-Box, weil Sie sich als Administrator anmelden. Vista, Win7 und Windows 2008 haben UAC jemanden zu verhindern (dh Malware) mit der Registrierung durcheinander, auch wenn Sie sich mit einem Administratorkonto angemeldet.

Sie können ein Manifest zu Ihrem Programm fügen Sie die UAC-Eingabeaufforderung aufzurufen, aber das ist völlig unpraktikabel für Unit-Tests. Nacharbeit Ihren Unit-Test zu schreiben, um die Struktur HKEY_CURRENT_USER statt. Die gleiche Überlegung gilt wahrscheinlich für das Programm, für das Sie die Tests geschrieben.

Andere Tipps

Es ist nicht genug, um sich als Administrator angemeldet zu sein; Ihr Programm mit Administratorrechten ausgeführt werden (das heißt mit einem Manifest).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top