【发布时间】:2020-10-28 08:47:19
【问题描述】:
我试图在打开计算机时自动启动我的应用程序。我已经把这个程序写进了我的代码:
if (Convert.ToInt32(_param.AUTOMATIC_LAUNCH) == 1)
{
registryKey = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);
registryKey.SetValue("Quick", Process.GetCurrentProcess().MainModule.FileName.ToString());
}
if (Convert.ToInt32(_param.AUTOMATIC_LAUNCH) == 0 && registryKey != null)
{
registryKey.DeleteValue("Quick", true);
}
关键确实在文件夹中:“Software\Microsoft\Windows\CurrentVersion\Run”。 但是我的日志中出现了一条消息:
System.UnauthorizedAccessException:访问路径“C:\WINDOWS\System32\config_borne.ini”被拒绝。
在 System.IO.__Error.WinIOError(Int32 错误代码,字符串可能全路径) (....)
我尝试在我的应用程序文件夹中向用户授予授权,但它不起作用。另外,“config-borne.ini”是一个不存在的文件。
【问题讨论】:
-
您是否以管理员身份运行您的应用程序?
-
你好,是的,我以管理员身份运行它
-
@harili,根据我的测试,我可以成功设置值。然后,你在哪里看到错误,你是抛出异常还是其他?建议你可以把你的app放到D盘试试。
-
@JackJJun-MSFT 你好,我也可以成功设置密钥。当我打开计算机(以测试应用程序是否会自行启动)时,出现异常。是的,我抛出了一个异常,我尝试发布一个弹出窗口,建议您以管理员访问权限运行应用程序,但没有成功。然后我将尝试将其放入我的 D:.
-
我认为这是一个临时环境变量未设置的问题,并且默认为您的程序无法访问的 c:\windows。我有同样的问题,但我不知道它使用的是哪个环境变量。