c#-通过任务计划程序跳过UAC

时间:2020-11-11 12:36:26

标签: c# windows winforms taskscheduler

我已经编写了一个C#Windows Forms应用程序,该应用程序可以执行一些清理操作(类似于CCleaner)。为了执行其中的一些操作,该应用程序需要管理权限,所以我已经提出了

function addspace($v) {
  return $v.' ';
}
fputcsv($handle, array_map('addspace', $fields));

在我的“ app.manifest”中。这样,普通的非管理员用户可以运行该程序,但是他们将无法执行某些操作,而管理员将以提升模式自动运行该程序。 但是,在这种情况下,Windows显示一个UAC对话框,我想跳过它。

我不想欺骗用户,我只是注意到CCleaner和其他程序可以跳过UAC对话框,但我仍然想在首次启动应用程序时显示它,以便用户意识到它需要管理权限,并且下次跳过该对话框,否则可能会很烦人。

我尝试过的方法: 我在网上读到,您可以使用Windows Task Scheduler来完成此任务。 我还注意到,我上面提到的程序在任务计划程序中都有一个“ SkipUAC”条目。 但是,我尝试使用以下代码,但无法使其正常工作:

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

(TasckScheduler dll位于GitHub上)

另外,还有一个问题:Windows启动后可能需要运行此任务,但是我不想在Windows启动时运行我的应用程序,我该如何完成呢?有没有人有一些代码或建议可以实现此目的? (也欢迎其他方式)

0 个答案:

没有答案