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

Tha*_*rif 1 c# vb.net windows startup winforms

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

但我的问题是:是否有可能创建一个无法在启动时禁用的应用程序?

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

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

在此输入图像描述

在应用它再次启用.

在此输入图像描述

Han*_*ant 11

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

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

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

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

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

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


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

  • @HansPassant - 您可以使用`psexec -i -d -sc:\ windows,使用来自SysInternals的[psexec](https://technet.microsoft.com/en-us/sysinternals/bb897553.aspx)在系统帐户下运行regedit\regedit.exe`.这样做可以让您撤消已经完成的脏事 (2认同)