从管理员特权实例启动具有普通用户权限的应用程序

问题描述 投票:0回答:1

我正在为我的应用程序开发一个自定义安装程序,因为我需要配置一些InnoSetup和其他类似工具不允许的特殊设置。安装程序需要管理员权限才能执行必要的配置。安装结束时,它会启动新安装的应用程序。

问题是这个应用程序也是以管理员权限启动的,继承了安装程序的权限。无论使用何种方法启动应用程序,都会发生这种情况:

CreateProcess
CreateProcessAsUser
ShellExecute
,甚至是过时的
WinExec

总而言之,我的问题是:从以管理员权限运行的应用程序中,如何使用已登录 Windows 用户的“正常”权限启动另一个应用程序?

windows delphi winapi
1个回答
0
投票

Raymond Chen 有关于这个主题的博客文章:

如何从提升的流程启动未提升的流程,反之亦然?

TLDR;使用

IShell­Dispatch2.Shell­Execute()
.

要求用户的 Explorer 实例运行应用程序

如何从我的提升进程 redux 启动未提升进程

TLDR;要求

CreateProcess()
使用
PROC_THREAD_ATTRIBUTE_PARENT_PROCESS
属性使用户的 Explorer 实例成为应用程序的父级。

© www.soinside.com 2019 - 2024. All rights reserved.