gpt4 book ai didi

c# - 在 EXE 安装后保持提升的权限并在重启期间自动启动?

转载 作者:太空宇宙 更新时间:2023-11-03 19:22:14 25 4
gpt4 key购买 nike

基本上,我有一个安装了特权的 exe 应用程序(例如,用户在 Vista/Win7 UAC 检查中按下“允许”按钮),然后应用程序启动并将自身设置为自动运行,以便应用程序计算机重新启动后将自动重新启动(所有操作均在提升时完成)。自动启动是由用户请求的,并不强制执行。

此重启指令在注册表中设置,在 CURRENT_USER 部分如下:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

问题是,当计算机重新启动时,Windows 不会让它执行,除非用户再次将其授权为提升进程(即任务栏图标在任务托盘中弹出说我的 EXE/进程的启动被阻止,并且用户可以使用任务托盘中图标上的菜单启动被阻止的应用程序。

我想补充一点,我已经将 list 文件集成到 EXE 中,所以这方面没有问题,它在 XML 文件中准确地注册了它的意图。

为什么 Windows 设计如此?如果一个 exe 被授权一次,那不就意味着它被永久授权了吗?

但我想问的主要问题是,我该如何解决这个问题?想象一下,每次应用程序需要自动运行时,我的用户都必须执行此操作吗?

此外,我想避免整个“您的应用程序首先不应在提升模式下运行”的争论/讨论,或“没有应用程序需要提升权限,您需要重写它”的讨论。我可以向您保证,我的应用程序需要提升权限(不幸的是)。如果有兴趣,下面有更多详细信息,不需要解释或理解本文中的问题,但包含在内是因为我知道有些人会问)...

额外的不必要阅读:

...事实上,它在 87% 的所有启动中都需要它(取决于用户的行为),而 13% 的时间不需要它(也就是说,所有启动实例的 13%,而不是 13 % 的用户),我正在开发第二个 exe,只有它首先启动,一旦需要/请求提升的功能,提升的部分加载,节省 13% 的启动,避免使用 UAC 唠叨的人,我只会有这将在 2013 年准备就绪。我将进行所有这些工作以拆分逻辑上不属于应用程序不同区域的功能 - 即使进行了所有这些工作,我上面提到的问题也没有得到解决(而是,非常略微最小化或延迟)。

最佳答案

我不确定为什么它被标记为任何编程语言,而且因为它确实是一个 ServerFault 问题,据我所知它甚至不属于这里。

处理此问题的正常方法是通过任务计划程序,使用以最高权限运行选项。有几个已发布的过程描述,例如 Make Vista launch UAC restricted programs at startup with Task Scheduler 中的旧描述。 .

关于c# - 在 EXE 安装后保持提升的权限并在重启期间自动启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11387728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com