应用程序清单,管理权限和自动启动在Windows Vista7
本文关键字:自动启动 Windows Vista7 权限 管理 管理权 应用程序清单 | 更新日期: 2023-09-27 18:18:04
所以,我有一个需要管理员权限工作的应用程序。
创建了一个app.manifest
文件。
但是现在我需要将我的程序设置为在Windows中自动启动,这让我遇到了麻烦。如果我的程序有一个app.manifest
文件-程序不加载当窗口启动,但当我删除app.manifest
文件-它工作得很好。
以下是app.manifest
文件中的代码:
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="update.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>-->
</application>
</compatibility>
</asmv1:assembly>
谢谢你的帮助。
它没有运行,因为当你请求管理员访问时,用户需要授权它为管理员(单击UAC允许按钮),如果它没有弹出,应该有一些在图标托盘中,用户可以通过点击图标来加载所有被阻止的exe's给予管理员权限。当你在没有清单的情况下运行时,它运行只是因为它默认在标准访问下运行(非管理员访问,基本用户级权限),所以你的应用程序正在运行,但不能对系统或文件/路径访问项进行更改,只有管理员级别的应用程序才能这样做。得到我吗?
问题是,你如何让你的exe自动启动与管理员权限,如果它是安装和最初运行与管理员提升权限在其安装?似乎有一些答案,但我仍在寻找哪一个(s)实际工作和可靠。基本上,如果它被提升一次,它应该继续被提升(自动,不提示用户),当它自动启动(重新启动后)-但它没有这样做,这就是问题所在。如果你在这件事上有进展,请告诉我。
更新:2012.11.10:
我找到了一个解决方案,使用windows任务调度程序来以编程方式调度为任务(即在…期间运行EXE)重新启动/启动),你可以选择将其作为提升应用程序运行,我认为你首先需要被提升,这样才能在Windows任务中安排此提升的自动运行条目调度器。我知道这看起来很奇怪,但微软允许这样做(而且只有这样)这是一种在启动过程中自动提升应用程序的方法我没有提供其他的方法。所以,使用适当的API来注册一个Windows任务计划,它将运行你的应用程序。
我不确定,但可能是关于启动用户的身份验证。