繁体   English   中英

C#应用程序在启动时未运行

[英]C# application not running on startup

我无法为自己的生命弄清楚这一点。 我创建了一个相当大的C#应用​​程序,该应用程序基本上运行一堆单独的组件并定期重新启动计算机。 该应用程序的想法基本上是使我们公司拥有的流程自动化。 因此,我之前使它工作了,以便在计算机重新启动后,在登录帐户后启动。

无论如何,该应用将不再在启动时启动。 请查看下面的代码,该代码已实现,用于向注册表中的“运行”项添加条目:

RegistryKey winStartUpKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
                string shieldStartVal = (string)winStartUpKey.GetValue("SHIELDCustomizer");
                if (shieldStartVal == null)
                {
                    string currentName = System.AppDomain.CurrentDomain.FriendlyName;
                    string currentDIR = Directory.GetCurrentDirectory() + @"\" + currentName;
                    RegistryKey startUpKey = Registry.LocalMachine.OpenSubKey
                        (@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", RegistryKeyPermissionCheck.ReadWriteSubTree);
                    startUpKey.SetValue("SHIELDCustomizer", "\"" + currentDIR + "\"", RegistryValueKind.String);
                }

上面的代码在过去一直有效。 并且我已经验证了启动项实际上已添加到注册表中。 当我将注册表中的路径复制到运行提示并单击“确定”时,该应用程序启动没有问题。

我对代码做了一些小的更改(相当长的代码,不确定从何处开始发布此代码),我无法想象会对应用程序是否在启动时启动产生影响。 我所有的图像和文件都已作为资源添加到项目中。 我能真正找到概述此类似情况的唯一参考资料是在此论坛上: 在添加一个notifyicon之后,应用程序将不会在启动时启动,它实际上看起来并不适合于我当前的设置,因为我的notifyIcon对象和属性已经是使用Visual Studio添加的,我尚未对其进行手动编码。

是否有人对注册表中正确的条目导致启动程序无法启动的原因有任何想法? 我知道我没有提供太多代码,请让我知道我是否可以提供其他信息,我将很乐意提供。

提前非常感谢您!

可以使用Windows 8.1中的任务管理器或Windows 7中的msconfig禁用启动任务。例如,我已禁用Box Sync在计算机上启动时运行:

在此处输入图片说明

通过任务管理器在以下位置启用/禁用注册表项

HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\StartupApproved\\Run

要么

HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\StartupApproved\\Run

如果该值以02 00 00开头,则将其启用。 如果它以另一个值开头(例如本例中的03 00 ),则将其禁用:

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM