1

我在Visual Studio 2010中创建了一个win32 应用程序。该应用程序是一种安装程序,它将一个 exe 复制到 system32 文件夹。

每次重新启动 Windows 时都会执行安装程序复制的 exe。我已经在注册表中为它创建了一个条目,现在我遇到的问题是我想在每次执行时以管理员身份运行该 exe。

我可以更改 exe 的属性以管理员身份运行,但它仅适用于特定系统,我提到我的应用程序是一个安装程序,因此更改每个系统的权限非常忙碌。

请指导我如何解决这个问题

4

1 回答 1

1

首先,请注意特权和权限是为用户而不是可执行文件指定的。

为了提升可执行文件的运行,您通常需要将应用程序清单添加到指定requireAdministrator执行级别的可执行文件中。如果用户不是管理员,或者找不到管理员执行过肩抬高,这样的应用程序将无法运行。

现在,这可能对你没有多大帮助。如果您希望在登录时进行提升(假设您的注册表设置为HKLM\Software\Microsoft\Windows\CurrentVersion\Run),那么这将导致每次程序启动时都会向用户显示 UAC 提升对话框。我无法想象这种行为是可取的。

也许避免所有这些的最简洁的方法是将您的应用程序转换为作为服务运行。服务在会话 0 中运行,不受 UAC 约束。只需在具有足够权限的用户帐户下运行服务。

最后一点,我不能再强调了。您不应该将文件复制到 system32。那是系统文件夹,它属于系统。

于 2013-09-23T08:22:15.837 回答