我有这段代码,但我似乎并不完全理解权限需求方法的目的
RegistryPermission registryPermission = new RegistryPermission(RegistryPermissionAccess.AllAccess, @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
registryPermission.Demand();
RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", RegistryKeyPermissionCheck.ReadWriteSubTree);
if (checkBoxLoadStartup.Checked)
{
//make an entry in the registry to make this program run at start up
regKey.SetValue(Application.ExecutablePath.ToString(), Application.ExecutablePath.ToString());
}
else
{
//delete the entry
regKey.DeleteValue(Application.ExecutablePath.ToString());
}
我希望看到一个窗口弹出并要求我允许写入注册表的权限。相反,我得到了一个例外。为了使它工作,我添加了:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
在 app.manifest 中,现在我看不到任何弹出窗口,但我可以更改值。
是否可以显示一个弹出窗口,询问一个问题以授予更改注册表的权限并根据给定的权限修改或不修改注册表项?