gpt4 book ai didi

c# - 以编程方式有选择地禁用 Windows 上特定程序的 UAC

转载 作者:可可西里 更新时间:2023-11-01 12:44:59 25 4
gpt4 key购买 nike

在堆栈和其他论坛上有许多关于禁用/绕过/抑制 UAC 的帖子问题/答案。也有解决方案。但在程序上也许不是。我只能看到一个解决方案 Disabling UAC programmatically但也许那里没有给出真正的程序化解决方案。

是否可以有一个程序化的解决方案来保存用户每次他/她运行像 wamp 这样的程序时都会被提示并且他们总是必须单击"is",所以最好告诉 Windows 他们的选择总是"is"。我相信会有这样的

我找到了 Here Windows 通过 GUI 在 Task Scheduler 中提供此功能,因此它也必须通过代码实现。

更新:我准备了一个可以正常工作的纯程序化解决方案。看我的回答。

最佳答案

简要说明:创建一个新的控制台/窗口应用程序以绕过 UAC 运行任何应用程序,按照下面的指导在该应用程序中选择目标应用程序的路径,编译该程序一次,并随时运行

一步一步

  1. This Codeplex link 下载 Microsoft.Win32.TaskScheduler.dll
  2. 创建一个 c# 应用程序(Windows 或控制台)并添加对上述 dll 的引用
  3. 将新项目(应用程序 list 文件)添加到您的项目(此应用程序)
  4. 更改 <requestedExecutionLevel level="asInvoker" uiAccess="false" /><requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
  5. 在您的 program.cs 文件中编写以下代码

using System;
using Microsoft.Win32.TaskScheduler;
class Program
{
static void Main(string[] args)
{
TaskService ts = new TaskService();
TaskDefinition td = ts.NewTask();
td.Principal.RunLevel = TaskRunLevel.Highest;
//td.Triggers.AddNew(TaskTriggerType.Logon);
td.Triggers.AddNew(TaskTriggerType.Once); //
string program_path = @"c:\wamp\wampmanager.exe"; // you can have it dynamic
//even of user choice giving an interface in win-form or wpf application

td.Actions.Add(new ExecAction(program_path, null));
ts.RootFolder.RegisterTaskDefinition("anyNamefortask", td);
}
}

6.现在编译并运行你的应用程序(这个应用程序)


现在您的应用程序(例如 WAMP)将在您想要的时间表上运行而不会提示任何 UAC 对话框(在我的情况下每次您登录窗口时)

来源

发起于:Can you turn off UAC for a single app?Selectively disabling UAC for specific programs on Windows 7

基本想法来自:Make Vista launch UAC restricted programs at startup with Task Scheduler

的基本实现 Creating Scheduled Tasks

关于c# - 以编程方式有选择地禁用 Windows 上特定程序的 UAC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15191129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com