我打算将 ShellExecute 用于用 delphi 2007 编写的应用程序的更新程序,我想知道 ShellExecute 是否可以在大多数带有 Win 的计算机上工作,或者它是否会因为某些用户权限或类似的东西而容易失败。
问问题
1340 次
2 回答
1
我相信 shellExecute 确实需要管理员。你没有提到操作系统。如果是 Vista+,那么 UAC 就会发挥作用。看到这个解释
于 2009-12-07T02:48:26.947 回答
0
来自MSDN
评论
因为 ShellExecute 可以将执行委托给使用组件对象模型 (COM) 激活的 Shell 扩展(数据源、上下文菜单处理程序、动词实现),所以应该在调用 ShellExecute 之前初始化 COM。某些 Shell 扩展需要 COM 单线程单元 (STA) 类型。在这种情况下,COM 应该被初始化,如下所示:
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)
正如 Ken Lange 已经建议的那样,根据您想要执行的内容,您可能需要管理权限。
于 2009-12-07T02:57:57.437 回答