【发布时间】:2010-06-17 19:57:59
【问题描述】:
在我的应用程序中,如果用户将文件保存到他们没有权限的文件夹中,File.Copy 将失败。例如,将文档保存到 C:\ 根目录。
我想通过 UAC 提示提示用户提升权限,而不是拒绝访问,但仅限于此保存功能(而不是整个应用程序)。有没有办法做到这一点?
【问题讨论】:
在我的应用程序中,如果用户将文件保存到他们没有权限的文件夹中,File.Copy 将失败。例如,将文档保存到 C:\ 根目录。
我想通过 UAC 提示提示用户提升权限,而不是拒绝访问,但仅限于此保存功能(而不是整个应用程序)。有没有办法做到这一点?
【问题讨论】:
总之……没有。
整个过程需要提升,并且提升需要在启动时发生。然而!您可以创建一个单独的进程来完成这项工作。制作一个单独的 .exe,它只做这个工作,并在命令行参数中获取它需要的一切。您可以将动词添加到将导致它被提升的过程中:
Process p = new Process();
p.StartInfo.FileName = "copy.exe";
p.StartInfo.Arguments = new [] { pathFrom, pathTo };
p.Verb = "runas";
p.Start();
类似的...
【讨论】: