从非管理应用程序以管理员身份运行进程

2023-11-25

从不以管理员身份运行的应用程序中,我有以下代码:

ProcessStartInfo proc = new ProcessStartInfo();
proc.WindowStyle = ProcessWindowStyle.Normal;
proc.FileName = myExePath;
proc.CreateNoWindow = false;
proc.UseShellExecute = false;
proc.Verb = "runas";

当我调用 Process.Start(proc) 时,我没有弹出请求以管理员身份运行的权限,并且 exe 不以管理员身份运行。

我尝试将 app.manifest 添加到 myExePath 中找到的可执行文件中,并将 requestsExecutionLevel 更新为

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

使用更新后的 app.manifest,在 Process.Start(proc) 调用中,我收到一个异常:“请求的操作需要提升”。

为什么 .Verb 操作没有设置管理员权限?

我正在 Windows Server 2008 R2 Standard 上进行测试。


You must use ShellExecute。 ShellExecute 是唯一知道如何启动的 APIConsent.exe为了提升。

示例 (.NET) 源代码

在 C# 中,调用方式ShellExecute是使用Process.Start随着UseShellExecute = true:

private void button1_Click(object sender, EventArgs e)
{
   //Public domain; no attribution required.
   ProcessStartInfo info = new ProcessStartInfo(@"C:\Windows\Notepad.exe");
   info.UseShellExecute = true;
   info.Verb = "runas";
   Process.Start(info);
}

如果你想成为一名优秀的开发者,你可以捕捉用户点击的时间No:

private void button1_Click(object sender, EventArgs e)
{
   //Public domain; no attribution required.
   const int ERROR_CANCELLED = 1223; //The operation was canceled by the user.

   ProcessStartInfo info = new ProcessStartInfo(@"C:\Windows\Notepad.exe");
   info.UseShellExecute = true;
   info.Verb = "runas";
   try
   {
      Process.Start(info);
   }
   catch (Win32Exception ex)
   {
      if (ex.NativeErrorCode == ERROR_CANCELLED)
         MessageBox.Show("Why you no select Yes?");
      else
         throw;
   }
}

奖励观看

  • UAC——什么。如何。为什么。。 UAC的架构,解释一下CreateProcess不能做提升,只能创建一个进程。ShellExecute是知道如何启动 Consent.exe 的人,而 Consent.exe 是检查组策略选项的人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从非管理应用程序以管理员身份运行进程 的相关文章

  • 如何在MVVM中管理多个窗口

    我知道有几个与此类似的问题 但我还没有找到明确的答案 我正在尝试深入研究 MVVM 并尽可能保持纯粹 但不确定如何在坚持模式的同时启动 关闭窗口 我最初的想法是向 ViewModel 发送数据绑定命令 触发代码来启动一个新视图 然后通过 X
  • 如何验证文件名称在 Windows 中是否有效?

    是否有一个 Windows API 函数可以将字符串值传递给该函数 该函数将返回一个指示文件名是否有效的值 我需要验证文件名是否有效 并且我正在寻找一种简单的方法来完成此操作 而无需重新发明轮子 我正在直接使用 C 但针对的是 Win32
  • 无法使用已与其底层 RCW 分离的 COM 对象。在 oledb 中

    我收到此错误 但我不知道我做错了什么 下面的代码在backrgroundworker中 将异常详细信息复制到剪贴板 System Runtime InteropServices InvalidComObjectException 未处理 通
  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • Json.NET - 反序列化接口属性引发错误“类型是接口或抽象类,无法实例化”

    我有一个类 其属性是接口 public class Foo public int Number get set public ISomething Thing get set 尝试反序列化Foo使用 Json NET 的类给我一条错误消息
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • 如何将图像路径保存到Live Tile的WP8本地文件夹

    我正在更新我的 Windows Phone 应用程序以使用新的 WP8 文件存储 API 本地文件夹 而不是 WP7 API 隔离存储文件 旧的工作方法 这是我如何成功地将图像保存到 共享 ShellContent文件夹使用隔离存储文件方法
  • C# 中的递归自定义配置

    我正在尝试创建一个遵循以下递归结构的自定义配置部分
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • C - 直接从键盘缓冲区读取

    这是C语言中的一个问题 如何直接读取键盘缓冲区中的数据 我想直接访问数据并将其存储在变量中 变量应该是什么数据类型 我需要它用于我们研究所目前正在开发的操作系统 它被称为 ICS OS 我不太清楚具体细节 它在 x86 32 位机器上运行
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob

随机推荐

  • 有没有办法在 Windows 和 Linux 上使用 php 检测文件夹中的更改?

    我正在寻找一种解决方案来检测文件夹中的更改php 该应用程序可以在两个平台上运行 linux and windows 只要结果相同 我可能会针对每个平台使用不同的方法 我的愿望是 如果将文件 文件夹添加到目录中 我希望我的应用程序检测到这个
  • 如何在 Openshift3 中禁用粘性会话

    如果您在 Openshift3 中扩展 Pod 来自同一客户端 IP 地址的所有请求都会发送到具有关联会话的容器 是否有任何配置可以禁用粘性会话 如何管理 Openshift 中内部 HAProxy 的选项 对于后代 由于我遇到了同样的问题
  • 使用 Open CV Python 将 Alpha 通道添加到单色图像

    我一直在研究彩色图像 RGB 和带有 alpha 通道 RGBA 的彩色图像 从 RGBA 图像中读取 Alpha 通道非常简单 我什至可以分割图像的 4 个通道 有没有什么方法可以将 Alpha 通道添加到单色或灰度图像 另外 alpha
  • require 未定义 javascript

    编辑 我现在确实意识到了错误 当我测试我的需求时 我正在终端中运行我的脚本 老的 答案可能已经在页面上 但我一直无法找到它 我看到的一般答案是我不能使用 require 客户端 问题是我尝试运行的脚本在我的学校笔记本电脑上完美运行 但它不想
  • PHP随机洗牌数组维护键=>值

    我一直在谷歌上寻找答案 但似乎找不到一些万无一失的东西 而且真的不能把这个搞砸 进入生产站点 我拥有的是具有 20 多个过滤器的高级搜索 它返回一个包含 ID 和距离的数组 我需要做的就是将这些结果打乱 以便每次都以随机顺序显示 我现在出来
  • 应该在电子邮件中使用 PHP_EOL 吗?

    我看到很多 PHP 电子邮件实现都使用 r n 但我也看到其中一些使用 PHP EOL 常量 哪一个更好 谢谢你的帮助都会 如果这是为了终止电子邮件中的行 那么您需要查看的是电子邮件的规范 而不是任何特定平台上使用的规范 电子邮件中的行根据
  • 法拉第超时错误与omniauth(自定义策略)/门卫

    我目前正在关注这个铁路广播公司对于我的具体情况 我在omniauth的回调中遇到了法拉第超时错误 目前 我使用 Rails 应用程序作为 API 并使用骨干网作为 javascript 前端 在同一应用程序上 我决定使用 OAuth 锁定
  • 将 AngularJS html5mode 与 NodeJS 和 Express 结合使用

    我正在使用带有 Express 的 NodeJS 服务器来为我的 AngularJS 应用程序提供服务 当我使用 angularJS 默认路由 hashbangs 时 这一切都工作正常 但现在我正在尝试激活 html5 模式 我正在像这样激
  • Git 修改/重写(不添加/更改文件)

    我经常想编辑提交消息 而不必从上次提交中重新选择文件集 git commit file1 c file2 c 提交消息中的意外拼写错误 git commit file1 c file2 c amend 这可行 但我不想从原始提交中重新选择文
  • 让 cmake 和 home-brew 一起工作

    当我用自制程序 cmake 安装库时似乎找不到它们 对于使用brew安装的任意库 有没有一种简单的方法可以解决这个问题 Default 默认情况下 brew 的库安装到 usr local lib folder gt ls usr loca
  • 启动线程的不同方式有什么区别?

    我有一个名为MyThread它扩展了Thread类并实现了run 函数 当我想运行它时 我有两种方法 新建一个实例并调用该函数 例如 new MyThread start new一个实例并将该实例作为参数传递给Thread的构造函数 然后调
  • Fxxx私有类名前缀约定从何而来?

    在 C C 中 私有类变量的常见约定是m MyPrivateVar 并且我相信 m 代表 我的 我可能是错的 在 Delphi 中 私有类变量以F 例如F手柄等 F 是什么意思 福 有一些命名约定 以免在代码中迷失 这是一个例子来指出为什么
  • 创建独立的 Shiny 应用程序 - Chrome 错误

    我正在尝试按照这篇非常好的博客文章的说明创建一个闪亮的桌面应用程序 http www r bloggers com deploying desktop apps with r 所以基本上我有一个具有以下结构的文件夹 App GoogleCh
  • 如何使用动态 LINQ 求和

    我有以下内容 可以与动态 linq 库 string where Price lt 5 string orderby BookID ASC IQueryable
  • 会话的最佳实践(大猩猩/会话)

    在开始在 golang 中使用会话之前 我需要回答一些问题 会话示例 import github com gorilla sessions var store sessions NewCookieStore byte 33446a9dcf9
  • Android Volley 给我一个 outOfMemory 异常

    我正在使用 volley 从服务器的水平滑动视图中显示图像 但我的图像非常大 这就是我遇到内存不足的异常 下面是我的排球课 public class Volley private RequestQueue mRequestQueue pri
  • RStudio 未检测到 Rtools

    我正在使用最新的 R RStudio 和 Rtools 我已经更新了环境变量 现在我可以从命令行调用 gcc 或 R 当我尝试从 RStudio 发布应用程序时 出现以下错误 准备部署应用程序 完成正在上传捆绑包 应用程序 64015 错误
  • 使用 xmlstarlet 或 xmllint 获取属性值

    自过去两天以来 我已经解决了几个问题 但尚未找到解决方案 这是我的 xml
  • 如何在谷歌colab上安装pydot和graphviz?

    我正在尝试在谷歌合作实验室上绘制我的模型 from keras utils import plot model plot model model to file model png 我得到了这个错误 ImportError Failed t
  • 从非管理应用程序以管理员身份运行进程

    从不以管理员身份运行的应用程序中 我有以下代码 ProcessStartInfo proc new ProcessStartInfo proc WindowStyle ProcessWindowStyle Normal proc FileN