![]() |
1
26
检测他们是否无法执行操作的最佳方法是尝试并捕捉
然而,正如@ DannySmurf correctly points out 您只能提升COM对象或单独的进程。 Windows SDK跨技术示例中有一个演示应用程序,名为 UAC Demo 此演示应用程序显示了一种使用提升进程执行操作的方法。它还演示了如何确定用户当前是否是管理员。 |
![]() |
2
16
在执行过程中请求提升要求您:
在。NET,目前无法提升正在运行的进程;你必须做上面的一件小事,但所做的只是给用户一种当前流程正在提升的外观。 我能想到的检查路径是否被UAC提升的唯一方法是,在处于未提升状态时尝试对其进行一些琐碎的写入,捕获异常,提升并重试。 |
![]() |
3
3
我不确定这对你是否有帮助,但你可以看看这篇博客文章: http://haishibai.blogspot.com/2010/01/tiy-try-out-windows-7-uac-using-c-part_26.html |
![]() |
4
1
您可能希望通知用户路径受到保护,并要求他们将文件输出到“更安全”的区域。这样你的应用程序就不需要升级。我相信这取决于你的用户和你想做什么,但我认为善意地让用户知道你把xyz转储到Windows/System32文件夹中感觉不好并不过分。 |
![]() |
5
-1
如果你的辅助驱动器有自己的文件权限,比如说你安装了另一个windows副本。它会提示。 它还将提示文件是否正在使用中,如果您将windows资源管理器打开到同一目录,并使用显示内容的文件预览器选择文件,则有时会出现这种情况。..还有其他一些奇怪的地方,但如果文件正在使用中或是敏感目录,通常会要求您获得文件权限。 如果你循环FolderBrowserDialog,一定要通知用户原因,这样他们就不会对你的应用程序生气。 注意:它确实很臭,没有.net请求权限的方式,可能是p/调用win32api。..? |
![]() |
6
-1
UAC可以根据对象的GUID提升对象,这(理论上)意味着可以提升任何具有GUID的类,UACDemo也应该展示如何做到这一点 |