我们使用"hobocopy“来运行PST文件的备份。
问题是,当运行hobocopy时,它会弹出一个“用户访问控制”对话框,请求运行权限。
我在VB.net中使用"Shell“来运行hobocopy,但是它需要在后台悄悄地运行。
有没有一种方法可以使用管理权限运行"Shell“命令,这样它就不会请求许可了?
发布于 2013-11-25 11:33:53
我的理解是,您的应用程序正在从您编写的代码中启动hobocopy。
如果您想在没有任何UAC提示的情况下这样做,那么您有两个选项:
在一个典型的情况下,我不会推荐这两个,但是如果你必须运行hobocopy (从应用程序的描述),我可以想象没有UAC的自由选项。
您可以尝试的另一件事是右键单击Windows中的应用程序或快捷方式,选择"Properties“,并在对话中启用”“选项。根据应用程序请求的确切权限,这可能会避免UAC提示。(例如:它适用于任务管理器,但不适用于Regedit;我不需要测试Hobocopy。)
发布于 2013-11-25 11:27:44
为什么一起使用Shell?
试着使用
System.Diagnostics.Process
System.Diagnostics.ProcessStartInfo
它为您提供了更多的可能性,例如不在shell中运行它,或者在特定的上下文中执行程序(例如其他用户)。
编辑:正如丹点所指出的那样,这并不能解决UAC问题,所以这里有更多的想法--
在搜索网络寻找解决方案之后,我很快注意到有一些方法可以击败UAC,但这些方法是Hack。因此,如果你需要击败UAC一个平滑的人机界面,最可能是一个设计错误。
解决这一问题的方法可包括:
只有后者在我看来是一个合法的解决方案,但需要重新设计你的应用程序。在我看来,按事件或计划执行一段备份软件似乎是服务应该做的事情。
https://stackoverflow.com/questions/20190744
复制相似问题