如何从启用了“以管理员身份运行”的基于 WiX 的安装程序安装桌面快捷方式(到批处理文件)?

2024-01-07

我正在从基于 WiX 的安装程序安装桌面快捷方式(到批处理文件) - 如何在启用“以管理员身份运行”设置的情况下自动配置此快捷方式?目标操作系统是Windows Server 2008 R2,并且安装程序正在以提升的权限运行。

Update:
感谢@Anders 提供的链接,我得以完成此工作。我需要在 C# CustomAction 中执行此操作,因此这里是代码的 C# 版本:

namespace CustomAction1
{
 public class CustomAction1
 {
  public bool MakeShortcutElevated(string file_)
  {
   if (!System.IO.File.Exists(file_)) { return false; }

   IPersistFile pf = new ShellLink() as IPersistFile;
   if (pf == null) { return false; }

   pf.Load(file_, 2 /* STGM_READWRITE */);
   IShellLinkDataList sldl = pf as IShellLinkDataList;
   if (sldl == null) { return false; }

   uint dwFlags;
   sldl.GetFlags(out dwFlags);
   sldl.SetFlags(dwFlags | 0x00002000 /* SLDF_RUNAS_USER */);
   pf.Save(null, true);
   return true;
  }
 }

 [ComImport(), Guid("00021401-0000-0000-C000-000000000046")]
 public class ShellLink { }

 [ComImport(), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("45e2b4ae-b1c3-11d0-b92f-00a0c90312e1")]
 interface IShellLinkDataList
 {
  void AddDataBlock(IntPtr pDataBlock);
  void CopyDataBlock(uint dwSig, out IntPtr ppDataBlock);
  void RemoveDataBlock(uint dwSig);
  void GetFlags(out uint pdwFlags);
  void SetFlags(uint dwFlags);
 }
}

我猜您需要自定义操作并自行调用 COM 接口。查询 IShellLink(或 IPersistFile?)中的 IShellLinkDataList,然后:IShellLinkDataList->SetFlags(orgFlagsFromGetFlags|SLDF_RUNAS_USER);

编辑:雷蒙德有完整的示例代码blog https://web.archive.org/web/20170924200159/https://blogs.msdn.microsoft.com/oldnewthing/20071219-00/?p=24103/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从启用了“以管理员身份运行”的基于 WiX 的安装程序安装桌面快捷方式(到批处理文件)? 的相关文章

  • 是否可以调用驻留在 exe 中的非导出函数?

    我想调用驻留在第 3 方 exe 中的函数并获取其结果 好像有should是一种方法 只要我知道函数地址 调用约定等 但我不知道如何 有谁知道我会怎么做 我意识到任何解决方案都是非标准的黑客 但有must成为一种方式 我的非恶意用例 我正在
  • 最后一个参数中的正斜杠会导致批处理文件目录(“%~dp0”)的路径发生更改

    我正在学习如何在批处理脚本中使用参数 并最终创建了某种用于读取参数和设置参数的模板 echo off SetLocal EnableDelayedExpansion set needextra set errstat set noflag
  • robocopy 脚本:系统资源不足

    我有一个之前可以运行的脚本 一个机器人复制脚本 备份服务器坏了 新的服务器丢失了一些配置 但我不是 Windows 用户 脚本如下 C Windows system32 Robocopy F Equipos NASSERVERBACKUP
  • 如何在Windows中收集每个服务名称及其状态?

    我想在不使用任何第三方工具的情况下获取所有 service name 及其状态 迄今为止SC http ss64 com nt sc html命令足以获取其中一个值 例如 sc query findstr SERVICE NAME 但我还需
  • Windows 计算机上出现“来自守护程序的错误响应:无法创建填充程序:OCI 运行时创建失败”错误

    我正在尝试构建一个简单的 Python 映像 然后在 Windows 上以交互方式访问容器 构建过程有效 但运行容器失败 这是 Dockerfile FROM python 3 10 4 WORKDIR app 生成文件 IMAGE scr
  • 如何通过 DOS 批处理命令发送电子邮件?

    我在 DOS 中有一个批处理文件 可以进行一些检查 完成后我需要发送一封电子邮件 我在 interwebz 上找到了一些解决方案 但大多数都是第三方的 或者只是在 Outlook 中打开新邮件 我需要命令来发送完整的电子邮件 而无需任何人工
  • Python 可执行文件:py2exe 还是 PyInstaller?

    要创建可执行文件 Windows 我假设我们应该使用其中之一 Py2exe 或 PyInstaller 它们之间有什么区别 Py2exe 和 PyInstaller 都是包装器 但我注意到以下几点差异 Py2exe 与 python2 4
  • R 脚本自动化时的不同结果

    以下命令对 pdf 文件执行 Ghostscript 这pdf file变量包含该 pdf 的路径 bbox lt system paste C gs gs8 64 bin gswin32c exe sDEVICE bbox dNOPAUS
  • 导入错误:无法导入名称线程

    这是我第一次学习Python 我继续尝试线程这篇博文 http www saltycrane com blog 2008 09 simplistic python thread example 问题是它似乎已经过时了 import time
  • 如何从任何进程关闭 Windows 上的套接字(ipv4 和 ipv6)连接?

    如何在 Windows 上关闭 tcp v4 和 tcp v6 连接 我不想终止具有开放连接的整个进程 因为这显然会将其他人踢出该进程 我需要从一个单独的进程执行此操作 因此无法访问套接字句柄等 我正在使用 Windows API 来获取
  • python+win32:检测窗口拖动

    有没有办法检测何时使用 python pywin32 在窗口中拖动不属于我的应用程序的窗口 我想对其进行设置 以便当我拖动标题与桌面边缘附近的图案匹配的窗口时 当松开鼠标时它会捕捉到边缘 我可以编写代码 以便在释放鼠标时将所有具有该标题的窗
  • 安装python启动文件

    我如何安装pythonstartup文件 以便它在命令上运行 例如python myfile py 我尝试将其安装到我的 home myuserUbuntu的目录 但它说我没有足够的权限 此外 不同的地方交替说它应该全部大写或全部小写 前面
  • Qt(在 Windows 上)将权限级别设置为“requireAdministrator”

    我正在使用 Qt Creator 并努力制作 exe文件默认以管理员身份运行 在线阅读所有解决方案我试图将这一行放入我的 pro file QMAKE LFLAGS MANIFESTUAC level requireAdministrato
  • 从命令行运行 R 代码 (Windows)

    我在名为 analysis r 的文件中有一些 R 代码 我希望能够从命令行 CMD 运行该文件中的代码 而无需通过 R 终端 并且我还希望能够传递参数并在我的代码中使用这些参数 例如就像下面的伪代码 C gt execute r scri
  • 取消后调用 boost::asio 异步处理程序没有错误

    我的代码在单个线程中使用 boost asio 和 io service 来执行各种套接字操作 所有操作都是异步的 每个处理程序都依赖于boost system error code 特别boost asio error operation
  • C# - 方法必须有返回类型

    我在调用 C 中的方法时遇到问题 不断收到消息 方法 计算 必须有返回类型 using System Diagnostics namespace WindowsFormsApplication1 public partial class F
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • 在 Cygwin 软件包列表中找不到 Openssl

    这里说的是https github com joyent node wiki Building node js on Cygwin Windows https github com joyent node wiki Building nod
  • Qt 支持 Windows 蓝牙 API 吗?

    谁能告诉我 Qt 是否支持 Windows 蓝牙 API 如果是这样 您能否分享一些有关如何使用它的信息 自上次答复以来 这个问题的答案发生了一些变化 Qt 5 2 版为 Linux BlueZ 和 BlackBerry 设备实现了蓝牙 A
  • 如何从Windows阻止社交媒体[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我想根据时间阻止我的电脑上的社交媒体 晚上 9 点后屏蔽 上午 11 点后解锁 如家长控制 我尝试过关注但失败了 创建了

随机推荐

  • UINavigationController 的 addChildViewController 和 topViewController 之间的相互作用

    我有类似模态视图控制器的东西 我需要将其显示在其他视图控制器上方 我没有使用常规模态控制器功能 presentViewController 和朋友 因为我需要更好地控制这个过程 相反 我使用视图控制器包含功能 addChildViewCon
  • 检测 iPhone 屏幕上的亮点/暗点

    我想检测并标记图像上最亮和最暗的点 例如 我正在创建 AVCaptureSession 并使用 AVCaptureVideoPreviewLayer 在屏幕上显示视频帧 现在 在这个相机输出视图上 我希望能够标记当前最暗和最亮的点 我必须读
  • IE框架边框替代

    对于这行代码 我收到此错误 validator w3 org XHTML 1 0 Transitional there is no attribute frameBorder 我在用着frameBorder因为 IE8 在 iframe 上
  • 有人使用 Android NDK 构建过 ZBar 吗?

    我正在尝试将 ZBar 集成到我的 Android 应用程序中 但无法构建本机库 我想知道是否有人以前做过并愿意与我分享 我知道这个问题很老了 但是 ZBar 提供了 android SDK http sourceforge net pro
  • 可以使用单个正则表达式来解析函数参数吗?

    Problem 有一个程序文件 在文件中的某个位置包含以下代码片段 food apples oranges pears tomato 该函数可以包含任意数量的参数 但它们必须是用逗号分隔的字符串 所有参数字符串都是小写单词 我希望能够使用正
  • 我应该如何记录继承的成员? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 考虑一下我有一个复杂的类结构 其中许多元素继承自其他元素 我可能有一个方法GetStuff string stuffName int count
  • 以编程方式检索 iPhone 上的内存使用情况

    我正在尝试以编程方式随时检索我的 iPhone 应用程序正在使用的内存量 是的 我知道 ObjectAlloc Leaks 我对这些不感兴趣 只是想知道是否可以编写一些代码并获取正在使用的字节数并通过 NSLog 报告它 Thanks 要获
  • 在 Swift 4 中调整 UISwitch 的大小

    我想更改 Swift 4 中 UISwitch 的默认大小 我查看了各种选项 但它们都与 v3 相关并且不起作用 请问有人可以建议一个在 Swift 4 中以编程方式执行此操作的示例吗 谢谢你 Edit 我尝试过以下示例 switchTes
  • 如何登录 SailsJS

    登录 SailsJS 的实际语法是什么 文档没有任何内容 但在网站的路线图中找到了以下行 将 Sails log winston 包装器 作为一个单独的模块拉出来 这样它就可以 由水线使用 我想象它是这样的 Sails log Sails
  • 三行模态,固定标题、底行和可滚动的中间行

    我正在尝试创建一个具有顶部 中间和底部的模态 顶部始终是固定高度 底部必须 粘 在底部上 并且可能会有所不同 其中的所有内容和元素都必须从底部构建 因此 如果有一行文本 底部将是该行的高度 如果有 3 或 4 行文本 底部会根据需要向上推
  • 如何在PHP中使用其原始参数调用父类构造函数

    我有这个代码 class A var arr array function construct para echo Not called class B extends A function construct arr new Item 由
  • LOCK_NB 被忽略

    运行此代码两次 fp fopen test test wb if flock fp LOCK NB LOCK EX fwrite fp data echo written sleep 5 else echo skipped ok flock
  • 如何使用 YouTube IFrame Player API 监听时间更改事件?

    我在 YouTube IFrame Player API 文档上找不到任何方法来监听时间变化 因此我可以在 UI 中显示视频的当前时间 持续时间 有没有办法在不轮询的情况下做到这一点getCurrentTime YouTube IFrame
  • Netty Channel.write 线程安全吗?

    我有一个 Netty 应用程序 我希望有多个线程写入通道 我只是想知道 Channel write 是否线程安全 从代码中可以看出 ChannelOutboundBuffer addMessage 方法本身不是线程安全的 然而 写入通道是
  • 如何在 Asyncio 中列出文件? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望能够在不阻塞的情况下获取文件列表 但我没有在文档 https docs python org 3 library asyncio
  • Kafka消费者配置/性能问题

    我正在尝试使用 kafka 作为 AWS SQS 的替代品 其动机主要是为了提高性能 其中 kafka 将消除一次拉取 10 条消息且上限为 256kb 的限制 这是我的用例的高级场景 我有一堆爬虫正在发送文档以进行索引 有效负载的大小平均
  • 单元测试构造函数时使用多个断言?

    我正在尝试使用 2 个构造函数对一个类进行单元测试 每个构造函数都有多个设置公共属性的参数 我的问题是 我是否应该只有 2 个具有多个断言的单元测试来检查每个属性是否已设置 或者是否对每个构造函数的每个参数进行测试 Public Perso
  • 有没有办法在CSS中创建canvas元素的3D圆柱体?

    我想将画布呈现为一个圆锥体 你可以像轮子一样双向旋转 这对于 JS CSS3 来说是可能的吗 您应该看看这个新的 CSS3 功能 自定义滤镜 CSS 着色器 这里有一些非常好的演示 比我能更好地描述整个事情 如何在 Chrome 上启用它
  • 具有多个参数的函数方差

    在我们的代码中尝试过类似的操作 但失败了 Func
  • 如何从启用了“以管理员身份运行”的基于 WiX 的安装程序安装桌面快捷方式(到批处理文件)?

    我正在从基于 WiX 的安装程序安装桌面快捷方式 到批处理文件 如何在启用 以管理员身份运行 设置的情况下自动配置此快捷方式 目标操作系统是Windows Server 2008 R2 并且安装程序正在以提升的权限运行 Update 感谢