以编程方式打开exe文件

时间:2014-06-13 12:03:18

标签: file exe processstartinfo

我有一个Windows应用程序,当你运行时,首先检查是否有新版本的应用程序。如果有新版本,则下载exe然后尝试运行它。当它尝试运行exe时,如果用户没有以管理员身份运行应用程序,则会发生错误。但如果他们确实以管理员身份运行它,一切正常。请在下面找到我用来打开exe的代码。我不确定我做错了什么。请协助。谢谢。

  Private Sub DownloadFileCompletedCallBack(ByVal sender As Object, ByVal e As AsyncCompletedEventArgs)
    Dim processStartInfo As ProcessStartInfo = New ProcessStartInfo()
    processStartInfo.FileName = _tempPath
    processStartInfo.Verb = "runas"
    Process.Start(processStartInfo)
    Close()
End Sub

我得到的错误如下 System.ComponentModel.Win32Exception(0x80004005):请求的操作需要在System.Diagnostics.Process.Start(ProcessStartInfo startInfo)的System.Diagnostics.Process.Start()处的System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)处进行提升

2 个答案:

答案 0 :(得分:0)

如果您使用管理员权限启动应用程序会发生什么?

我认为应用程序是在调用者应用程序访问的情况下启动的。

答案 1 :(得分:0)

从哪个位置下载新版本并且该位置是否具有受限制的访问权限?此外,用户本地安装位于何处,可能是更新该位置受限制,这是阻止自我更新的原因。因此,如果程序需要此提升权限,则需要处理部署环境的权限要求。还要检查用户计算机上的Windows事件日志以获取导致异常的更多详细信息,这可能是更具体的错误。