应用程序如何在寄存器运行时安装和注册,以便与非管理员用户一起自动运行
本文关键字:管理员 用户 一起 运行 寄存器 运行时 注册 安装 应用程序 | 更新日期: 2023-09-27 18:24:19
我有一个应用程序,它通过以下方式注册自己以运行windows注册表:
RegistryKey rk1 = Registry.LocalMachine.OpenSubKey(
"SOFTWARE''Microsoft''Windows''CurrentVersion''Run", true);
var value1 = rk1.GetValue(KeyName);
if(value1 == null)
rk1.SetValue(KeyName, KeyValue);
RegistryKey rk2 = Registry.LocalMachine.OpenSubKey(
"Software''Wow6432Node''Microsoft''Windows''CurrentVersion''Run", true);
var value2 = rk2.GetValue(KeyName);
if(value2 == null)
rk2.SetValue(KeyName, KeyValue);
我使用管理员用户安装该应用程序,并且我希望在所有用户的每次登录中自动运行它,但通过此实现,该应用程序不会在有限的用户登录中运行,所以你的建议是什么?
编辑:
对于管理员用户,一切都很顺利,但对于有限的用户,应用程序从未启动。
您应该做的第一件事是向文件中写入一些消息(称为日志记录),以了解应用程序不工作的原因
如果你在一开始就写日志"应用程序启动",你可以了解它是否运行(所以请查看稍后的消息,了解它在哪里停止)
不要使用(在注释中)exe所在的目录进行日志记录,因为它对有限的用户不可写入
试试这个:
string fname = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
"your_app_name", "log.txt");
File.AppendAllText(fname, "Started");