用户登录后运行.bat文件

时间:2016-11-21 10:37:16

标签: c# registrykey

我想在机器启动时运行.bat文件(或者每当用户登录时运行)

为此,我制作了这段代码:

            string subKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
            RegistryKey key;
            if (ClientSystem.Is64BitOperatingSystem)
            {
                key = RegistryKey.OpenBaseKey(
                    RegistryHive.LocalMachine, 
                    RegistryView.Registry64
                ).OpenSubKey(subKey);
            }
            else
            {
                key = Registry.LocalMachine.OpenSubKey(subKey, true);
            }
            key.SetValue("websocket", @"c:\websocket\run.bat"); // error here

运行时我收到错误,告诉我我没有权限更改文件。

正如@Tolanj所提到的那样,添加实际的错误消息可能是一个想法:

  

Der kan ikke skrives tilregistreringsdatabasenøglen。

哪个会转换为

  

无法写入数据库注册密钥

运行程序的用户具有管理员权限,程序以管理员身份运行

如何更改权限以便允许在机器启动时运行脚本,或者是否有更好的方法来实现我正在寻找的功能?

1 个答案:

答案 0 :(得分:2)

                key = RegistryKey.OpenBaseKey(
                RegistryHive.LocalMachine, 
                RegistryView.Registry64
            ).OpenSubKey(subKey);

需要:

                key = RegistryKey.OpenBaseKey(
                RegistryHive.LocalMachine, 
                RegistryView.Registry64
            ).OpenSubKey(subKey, true);

打开以进行修改