问题描述
小弟在做一个Vista的应用程序,要求如果在勾选了开机自动运行的选项,在标准用户和管理员用户下都能生效.开机后自动运行这个函数如下:internalstaticvoidSaveToRegistry(){conststringSubKey=@"HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun";conststringSubKeyOne=@"SOFTWAREMicrosoftWindowsCurrentVersionRun";conststringRegistryKeyName="LenovoFingerprintWPF";RegistryKeyautoRun=Registry.LocalMachine.OpenSubKey(SubKeyOne,true);if(SettingsWindow.settings.StartupRunning)//为真的时候{stringexeName=Process.GetCurrentProcess().ProcessName;stringcurPath=Directory.GetCurrentDirectory();Registry.SetValue(SubKey,RegistryKeyName,curPath+@""+exeName+".exe");//写入注册表//autoRun.SetValue(RegistryKeyName,curPath+@""+exeName+".exe");}else{autoRun.DeleteValue(RegistryKeyName,false);//删除注册表}}结果是:在以管理员运行这个程序勾选自动运行选项的话,能在HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun下写入值,但是在以标准用户运行这个程序,就无法在这个目录下写入.好像标准用户没有权限setvalue和deletevalue.想知道有什么方法能够在标准用户下写入注册表?谢谢!
解决方案
解决方案二:
大虾帮忙!!!
解决方案三:
disableuac提升权限
解决方案四:
"想知道有什么方法能够在标准用户下写入HKEY_LOCAL_MACHINE"简单的说:不能
解决方案五:
应该会有要求管理员权限的提示。