3

我打算将 ShellExecute 用于用 delphi 2007 编写的应用程序的更新程序,我想知道 ShellExecute 是否可以在大多数带有 Win 的计算机上工作,或者它是否会因为某些用户权限或类似的东西而容易失败。

4

2 回答 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 回答