2014-06-13 102 views
0

我有一個windows應用程序,當你運行時,首先檢查是否有新版本的應用程序。如果有新版本,則下載該exe然後嘗試運行它。當它試圖運行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.StartWithCreateProcess(的ProcessStartInfo的StartInfo)在System.Diagnostics.Process.Start(海拔)在System.Diagnostics.Process.Start(ProcessStartInfo startInfo)

回答

0

如果以管理員權限啓動應用程序,會發生什麼情況?

我認爲應用程序是通過調用者應用程序訪問啓動的。

+0

如果我作爲管理員運行該應用程序,它工作正常但我需要它運行,即使用戶沒有nt運行它作爲管理員 – Linda

0

從哪裏下載新版本,並且該位置是否限制了訪問權限?此外,用戶本地安裝位於何處,它可能正在更新,該位置受到限制,這阻止了自我更新。因此,如果程序需要這種提升權限,則需要處理部署環境的權限要求。還要檢查用戶計算機上的Windows Eventlog以獲得導致異常的更多細節,這可能是一個更具體的錯誤。