我计划在使用Delphi 2007编写的应用程序的更新器中使用ShellExecute。我想知道ShellExecute在大多数安装有Windows的计算机上是否可行,或者它是否会因为某些用户权限之类的问题而容易失败。
我计划在使用Delphi 2007编写的应用程序的更新器中使用ShellExecute。我想知道ShellExecute在大多数安装有Windows的计算机上是否可行,或者它是否会因为某些用户权限之类的问题而容易失败。
我相信shellExecute需要管理员权限。你没有提到操作系统。如果是Vista+,那么UAC就会发挥作用。请参见this explanation。
来自 MSDN
备注
由于ShellExecute可以将执行委托给使用组件对象模型(COM)激活的Shell扩展(数据源、上下文菜单处理程序、动词实现),因此在调用ShellExecute之前应该初始化COM。一些Shell扩展需要COM单线程公寓(STA)类型。在这种情况下,COM应该按照以下方式进行初始化:
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)