2016-05-14 53 views
0

我對VB.NET有點新,所以我來這裏問一個問題。我製作了一個自定義安裝程序,它啓動位於本地目錄中的「setup.exe」,並由Visual Studio的「發佈」功能創建。我想我的WindowsFormApplication從'setup.exe'得到'是或否'的結果,如果是,它將啓用button1,如果否,它將顯示MsgBox告訴「進程被用戶取消。我研究了。很多隻講述如何從MsgBox得到YesorNo結果,並做一些動作在互聯網上我嘗試這樣做:從推出的應用程序獲得'是或否'結果 - Vb.net

Dim result As Integer = Process.Start("setup.exe") 
    If result = Result.No Then 
     MessageBox.Show("Process Cancelled by user") 
    ElseIf result = Result.Yes Then 
     Button1.Enabled = True 
    End If 
+0

'Publish'生成的setup.exe旨在用作ClickOnce安裝程序。由部署項目(ISLE或[擴展名](https://visualstudiogallery.msdn.microsoft.com/f1cc3f3e-c300-40a7-8797-c509fb8933b9)生成的setup.exe包含取消按鈕。 – peterG

+0

謝謝,但我已經安裝了「Microsoft Visual Studio 2015安裝程序項目」。 f這種方法對Visual Studio生成的setup.exe是不可能的,有沒有其他方法可以做到這一點? –

+0

我不知道你要做什麼,tbh,但我認爲[這個問題](http://stackoverflow.com/questions/1585354/get-return-value-from-process)可能是你正在尋找。 – peterG

回答

0

你應該閱讀;

https://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardoutput(v=vs.110).aspx

你必須等待進程退出,但這一切都取決於setu p.exe正在生成輸出...

+0

但它只是等待退出,並沒有得到結果。退出可以是雙方,如果單擊是,Setup.exe將安裝應用程序並關閉,如果沒有單擊,Setup.exe將簡單關閉。該代碼告訴程序關閉時該怎麼做。 –

+0

這就是我說的,你可能不想聽到的;它依賴於這個setup.exe創建的輸出。如果其他程序沒有提供任何輸出,就沒有簡單的方法來捕捉其他程序中發生的情況。所以你可以反編譯或/和重新創建這個setup.exe,這非常困難。顯然你的setup.exe不會產生任何輸出。看起來,你正在啓動一個進程,並且你想看看事後是否安裝了某些東西,你可以在安裝完成後從註冊表中獲得已安裝程序的列表,並在安裝完成後啓用按鈕。 – Lectere

+0

有沒有辦法讓我們創建類似setup.exe的東西來安裝程序並輸出結果? –

相關問題