【发布时间】:2017-03-10 16:47:31
【问题描述】:
我想从以管理员模式运行的 MFC 应用程序创建新进程, 在这个新进程应该有更少的权限,这样我就可以运行另一个具有更少权限的应用程序。 如果尝试以高权限运行,我将无法启动应用程序。这就是为什么我想创建一个新流程 它应该具有较少的权限,以便我可以启动 xxxxxx 应用程序(以独立用户模式启动,即没有管理员) 没有任何障碍。
为了更准确,让我清楚地向您解释一下场景: 我正在尝试使用 MFC 应用程序中的 MAPI32.dll 的“MAPISendMail”发送一封电子邮件(这是作为“以管理员身份运行”模式运行的),Outlook 已经在独立用户模式下打开。代码看起来像MAPISendMail_Implementation
如果我们能在上面的链接中观察到下面的sn-p:
ULONG nSent = lpfnMAPISendMail(0, 0,
&MAPImsg, MAPI_LOGON_UI | MAPI_DIALOG, 0);
当它试图从高权限应用程序(MFC 应用程序)访问低权限应用程序(outlook)时失败了。
我在微软论坛MAPISendMail_MSDN 上看到了一些帖子, 他们建议通过创建一个新进程来执行所谓的“lpfnMAPISendMail”,您将能够成功调用该过程。但我不知道如何在那个新进程中调用上述函数。
谁能指导我如何做到这一点?
【问题讨论】:
-
我不知道
lpfnMapiSendMail在幕后工作,但请查看 stackoverflow.com/questions/40122964/… 以获得潜在答案。