Hi,
hat schomal jemand von Euch unter Windows Vista auf die Registry zugegriffen (lesen/schreiben)?
Folgendermaßen schreibe ich in die Registry:
RegistryKey rkHKLM = Registry.CurrentUser;
RegistryKey rkRun = rkHKLM.OpenSubKey(@"Software\Microsoft\DWM", true);
if (rkRun == null)
{
rkRun = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\DWM");
}
rkRun.SetValue("test", 1);
rkRun.Close();
rkHKLM.Close();
Unter Windows Xp gibts keinerlei Probleme und unter Windows Vista auch nicht, solange ich mein Programm aus der Entwicklungsumgebung starte.
Wenn ich aber die kompilierte exe starte und die Funktion ausführe, bekekomme ich immer die Fehlermeldung "stopped working" von Windows.
Kennt jemand das Verhalten und weiß Abhilfe?
partyboy
Vielleicht räumt die Entwicklungsumgebung spezielle Rechte ein. Bei Vista werden alle Programme standardmäßig nicht mit Admin-Privilegien ausgeführt. Normale Benutzer dürfen nicht in HKEY_LOCAL_MACHINE schreiben.
Hi,
das hab ich mir auch schon gedacht, aber ich schreibe nicht in localmachine. Wenn ich es wollte, würde Windows sicherlich diesen "Das Programm xyz will..."-Dialog bringen.
Man, das nervt echt. Wäre super, wenn jemand ne Lösung für das Problem hat.
edit: Es hilft auch nicht, wenn ich mein Programm als Administrator ausführe, mittels rechte Maustaste aufs Programm-Icons "Als Adminstrator ausführen".
partyboy
arg, hilfe. Wenn ich nicht bald eine Lösung für dieses Problem habe, werde ich von meinem Chef ausgepeitscht. X(
Würde ja vorschlagen, etwas anderes als die Registry zu benutzen. Xml Dateien z.b.
Hi,
das geht leider nicht, ich muss registry-Einstellungen eines Programmes ändern.
partyboy
Was meinst du eigentlich mit Stopped Working? Wo wird denn die Meldung ausgegeben? Weil das ist ja keine Exception oder sonstige Fehlermeldung die vom Programm kommt oder?
Baka wa shinanakya naoranai.
Mein XING Profil.
Hab Dein Code mal ausgeführt. Funktioniert problemlos, auch wenn ich die exe starte ( angemeldet mit Adminrechten). Getestet in Vista RC1.
Sorry Leute, ich bin ein Depp X(
Eine andere Funktion hat das Problem ausgelöst, nicht die Regsitry-Schreib-Funktion.
Ich hab ein Testprogramm erstellt, das wirklich nur den Beispielcode ausführt, den ich gepostet hatte und jetzt gehts.
Danke Leute
Original von partyboy
arg, hilfe. Wenn ich nicht bald eine Lösung für dieses Problem habe, werde ich von meinem Chef ausgepeitscht. X(
Ihr verdient doch nicht ernsthaft euer Geld damit, Vista-Desktop-Effekte ein- oder auszuschalten.... 😉
Ich denke dass die UAC von Windows Vista da einen Zugriffsversuch unterbindet. Die Entwicklungsumgebung, wenn Du sie als Admin startest, läuft dann auch in diesem Kontext.
Die kompilierte Exe wird dann ja im UserKontext ausgeführt. Soweit ich weiss müsste man dann Vista angeben dass dieser Process Deiner EXE als Admin läuft... 🤔
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt