【问题标题】:Prompt with UAC when user doesn't have access to copy a file当用户无权复制文件时使用 UAC 提示
【发布时间】:2010-06-17 19:57:59
【问题描述】:

在我的应用程序中,如果用户将文件保存到他们没有权限的文件夹中,File.Copy 将失败。例如,将文档保存到 C:\ 根目录。

我想通过 UAC 提示提示用户提升权限,而不是拒绝访问,但仅限于此保存功能(而不是整个应用程序)。有没有办法做到这一点?

【问题讨论】:

    标签: c# file-io uac


    【解决方案1】:

    总之……没有。

    整个过程需要提升,并且提升需要在启动时发生。然而!您可以创建一个单独的进程来完成这项工作。制作一个单独的 .exe,它只做这个工作,并在命令行参数中获取它需要的一切。您可以将动词添加到将导致它被提升的过程中:

    Process p = new Process();
    p.StartInfo.FileName = "copy.exe";
    p.StartInfo.Arguments = new [] { pathFrom, pathTo };
    p.Verb = "runas";
    p.Start();
    

    类似的...

    【讨论】:

    • 我一般不喜欢 runas - 我更喜欢让启动的 exe 有一个清单,并告诉 Process 使用 ShellExecute。但是,我在这里给您一个有效的观点,因为您使用的是副本,这显然不应该表现出来。您甚至可以将其放入注意到第一个副本失败的代码中。不错。
    猜你喜欢
    • 1970-01-01
    • 2011-06-10
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 1970-01-01
    相关资源
    最近更新 更多