使用.net应用程序更改启动启用/禁用选项

时间:2015-03-26 05:33:00

标签: c# vb.net windows winforms startup

我开发了一个将在系统启动时运行的应用程序。 它在系统启动时工作正常,我可以在System Configuration -> Startup中看到该应用程序。 可以启用/禁用启动时显示的所有应用程序。

  

但我的问题是:是否可以创建一个无法禁用的应用程序   在Startup?

     

如何在注册表中控制启动属性?

该图显示了启动时无法禁用的应用程序。

enter image description here

在应用时,它会再次启用。

enter image description here

3 个答案:

答案 0 :(得分:11)

这个问题严重搞砸了我的机器。我会把它写成一个警示故事,所以没有人会做同样愚蠢的事情。

我不认为OP声称可以禁用这些复选框是非常可信的。从来没有听说过这样的事情,如果可能的话,它肯定会被广泛滥用。 可以工作的唯一方式是当他以普通用户身份登录时,这是陈腐的,或者删除管理员组的注册表值的修改权限。所以我决定尝试一下,可能会出错?

Ran Regedit.exe,选择了一个我根本不关心的条目(Intel shovel-ware)。编辑+权限,首先打破了继承链,以便我可以控制每个单独值的权限。未完成“完全控制”选项,因此仅保留“读取”权限。

那很有用。去恢复权限。并发现了一些我以前不知道的东西。这些权限不适用于值,它们适用于密钥。只有在后视中才显而易见,Regedit然而却没有做到这一点。而且我不仅删除了修改权限,我还删除了再次更改权限的权限。在所有值上。

哦,恐怖。我已经来修复这种损害,不知何故,它将来会轰炸安装人员。唯一仍具有修改权限的帐户是系统帐户。我必须在开机时做一些可怕的事情,也许写一项服务。

这是一个糟糕的,的想法。如果您有任何想法我可以轻松修复此问题,请发表评论。


编辑:我得到了回报,通过将密钥的所有者从系统更改为管理员来设法重新获得控制权。

答案 1 :(得分:1)

简单的答案。你不能。

但是,您可以从用户(MSConfig)隐藏启动程序,并使其更难以禁用。请查看activex startup method以获取更多信息

答案 2 :(得分:1)

您可以在命令行上使用wmic创建/删除/列出启动程序。例如,如果要获取html格式的所有启动程序列表,可以在命令提示符下运行wmic startup list /format:htable > startup.html,然后在Web浏览器中打开生成的文件。您还可以使用CSV(wmic startup list /format:csv > startup.csv)或其他各种格式获取表格。
还有创建删除选项供使用。我确定您可以在VB.NET或C#中使用System.Diagnostics.Process.Start并使用适当的参数来实现您的目标。祝你好运!