2016-05-14 49 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的东西来安装程序并输出结果? –

相关问题