【问题标题】:C++, WinAPI, ShellExecute, system differenceC++、WinAPI、ShellExecute、系统区别
【发布时间】:2021-12-14 09:05:21
【问题描述】:

system()ShellExecute()CreateProcess() 有什么区别? 我想调用应用程序(exe和msi)的卸载程序。

【问题讨论】:

  • 这三个文件都有记录,可以使用任何网络搜索引擎轻松找到。在这里提问之前您是否尝试过这些搜索?
  • system() 只是调用CreateProcess() 来运行cmd.exe /k <command>

标签: c++ winapi


【解决方案1】:

卸载程序可能需要正确的权限,这意味着您需要ShellExecute。另外两个不支持UAC。

【讨论】:

  • 如何将 shellexec 用于 msi 和简单的 exe 卸载程序?
  • 为动词传递 runas 以管理员身份运行。永远不要使用ShellExecute,因为它不会正确报告错误。使用ShellExecuteEx。有关更多详细信息,请阅读文档。
  • "卸载程序可能需要正确的权限" - 因此,应该相应地显示,因此您不需要使用runas。只需正常运行 EXE 并让操作系统根据需要提升。
猜你喜欢
  • 2012-05-31
  • 2017-01-03
  • 2015-07-19
  • 1970-01-01
  • 1970-01-01
  • 2010-10-09
  • 1970-01-01
  • 2011-04-13
  • 2019-08-29
相关资源
最近更新 更多