我打算将ShellExecute用于在delphi 2007中编写的应用程序的更新程序,我想知道ShellExecute是否可以在大多数使用Win的计算机上运行,或者是否因为某些用户权限或类似的原因而很容易失败。
答案 0 :(得分:1)
我相信shellExecute确实需要管理员。你没有提到操作系统。如果是Vista +那么UAC就可以玩了。见this explanation
答案 1 :(得分:0)
来自MSDN
<强>说明强>
因为ShellExecute可以委派 执行到Shell扩展(数据 来源,上下文菜单处理程序,动词 实现)被激活 使用组件对象模型(COM), COM应该在之前初始化 调用ShellExecute。一些壳牌 扩展需要COM 单线程单元(STA)类型。 在这种情况下,COM应该是 初始化如下所示:
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)
正如Ken Lange所建议的那样,对你想要执行的内容进行改变,你可能需要管理权限。