2011-01-20 2 views
2

У меня есть проект, основанный на VB.net и WPF 4. У моей программы есть экран «стартовой панели» с кнопками типа «Play» «Demos» «Руководство пользователя «« Выход »и т. Д.Запуск внешнего .exe (например, деинсталлятор) из события нажатия кнопки

У меня есть кнопка удаления в этом меню. Когда он щелкнут, мне нужно запустить файл .exe «uninst000.exe», расположенный в каталоге моей программы (который может быть где угодно на компьютере, в зависимости от параметров пользователя во время установки).

Как именно я это делаю?

ответ

7
Process.Start("C:\Path\MyApp.exe") 

Загрузить путь, из которого вы храните эти пользовательские настройки.

+0

Хм, это вызвало неизвестное исключение. Я не могу проверить этот код в отладчике в этот момент (только в скомпилированной версии), но я рассмотрю его позже. – CodeMouse92

+0

@ Джейсон: Пока ваш путь правильный, я не вижу, чтобы это происходило здесь. Этот вызов функции фактически имитирует двойной щелчок по файлу в ОС Windows, в результате чего ОС решит, как открыть файл. – Matt

+0

Сладкий, спасибо Мэтт. Еще один вопрос, поскольку ... поскольку пользователь может установить программу (и деинсталлятор, то же место, что и основная программа .exe) в любом месте на компьютере, как определить в этом коде код, что такое URI? – CodeMouse92

2

От: http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx

Imports System Imports System.Diagnostics Imports System.ComponentModel

Namespace MyProcessSample Class MyProcess ' Opens the Internet Explorer application. Public Sub OpenApplication(myFavoritesPath As String) ' Start Internet Explorer. Defaults to the home page. Process.Start("IExplore.exe")

 ' Display the contents of the favorites folder in the browser. 
     Process.Start(myFavoritesPath) 
    End Sub 'OpenApplication 

    ' Opens urls and .html documents using Internet Explorer. 
    Sub OpenWithArguments() 
     ' url's are not considered documents. They can only be opened 
     ' by passing them as arguments. 
     Process.Start("IExplore.exe", "www.northwindtraders.com") 

     ' Start a Web page using a browser associated with .html and .asp files. 
     Process.Start("IExplore.exe", "C:\myPath\myFile.htm") 
     Process.Start("IExplore.exe", "C:\myPath\myFile.asp") 
    End Sub 'OpenWithArguments 

    ' Uses the ProcessStartInfo class to start new processes, 
    ' both in a minimized mode. 
    Sub OpenWithStartInfo() 
     Dim startInfo As New ProcessStartInfo("IExplore.exe") 
     startInfo.WindowStyle = ProcessWindowStyle.Minimized 

     Process.Start(startInfo) 

     startInfo.Arguments = "www.northwindtraders.com" 

     Process.Start(startInfo) 
    End Sub 'OpenWithStartInfo 

    Shared Sub Main() 
     ' Get the path that stores favorite links. 
     Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites) 

     Dim myProcess As New MyProcess() 

     myProcess.OpenApplication(myFavoritesPath) 
     myProcess.OpenWithArguments() 
     myProcess.OpenWithStartInfo() 
    End Sub 'Main 
End Class 'MyProcess 

End Namespace 'MyProcessSample

Смежные вопросы