Запуск программы MS-DOS

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

sim6713
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 24.07.2008 (Чт) 20:46

Запуск программы MS-DOS

Сообщение sim6713 » 25.07.2008 (Пт) 22:50

Начинающий...
Простой, вроде, вопрос, но нигде не найду ответ...
Как запустить программу MS-DOS из своей проги...
А то запускаю через FileRun... Коряво как-то...
Спасиб.

Estilla
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 118
Зарегистрирован: 27.09.2006 (Ср) 21:07
Откуда: Москва

Сообщение Estilla » 26.07.2008 (Сб) 2:09

а System.Diagnostics.Process.Start не катит?

sim6713
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 24.07.2008 (Чт) 20:46

Сообщение sim6713 » 26.07.2008 (Сб) 13:42

а System.Diagnostics.Process.Start не катит?


Наверное нет.
Если только что-то не правильно ниже:

Код: Выделить всё
System.Diagnostics.Process.Start("D:\SKSDATA\LOADBAZ.EXE")


Окно запускается на пол секунды - и пропадает.

Пробовал и двойные слэши.

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Сообщение Williams » 26.07.2008 (Сб) 14:38

Да причем тут слэши... Может вы спутали MS-DOS программу с консольным приложением?

В любом случае, если указанный путь не найден, то будет выброшено исключение.

Задавать параметры запуска можно через экземпляр класса ProcessStartInfo, а именно:



Dim proc As New Process

Dim procInfo As New ProcessStartInfo



procInfo.Property = Value



proc.StartInfo = procInfo



proc.Start()

sim6713
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 24.07.2008 (Чт) 20:46

Сообщение sim6713 » 27.07.2008 (Вс) 0:14

Может вы спутали MS-DOS программу с консольным приложением?


Да. Не досмотрел...

Процесс ntvdm.exe (из С:\WINDOWS\System32)
А приложение - D:\SKSDATA\LOADBAZ.EXE
Но мне от этого легче не стало :)
См. выше - НАЧИНАЮЩИЙ

Не найду никак procInfo.Property

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 27.07.2008 (Вс) 0:35

System.Diagnostics.Process.Start("D:\COD\QB45\qb45\qb.exe")

sim6713
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 24.07.2008 (Чт) 20:46

Сообщение sim6713 » 27.07.2008 (Вс) 0:47

Спасибо всем! Разобрался...

Код: Выделить всё
Dim proc As New Process
        Dim procInfo As New ProcessStartInfo

        procInfo.FileName = "LOADBAZ.EXE"
        procInfo.WorkingDirectory = "D:\SKSDATA"
        proc.StartInfo = procInfo

        proc.Start()


Только не понял почему он так запускается :)

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Запуск программы MS-DOS

Сообщение Joo » 14.08.2008 (Чт) 19:47

Тут же вопрос, запустить запустили, а как считать то что выводится в консоль? Для дальнейшего анализа
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Запуск программы MS-DOS

Сообщение Viper » 15.08.2008 (Пт) 7:01

Свойства Process.StandartOutput и ProcessStartInfo.RedirectStandartOutput помогут тебе.
Весь мир матрица, а мы в нем потоки байтов!

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Запуск программы MS-DOS

Сообщение Joo » 15.08.2008 (Пт) 12:13

Спасибо ))
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Запуск программы MS-DOS

Сообщение Joo » 15.08.2008 (Пт) 12:47

Все работает!
Код: Выделить всё
       
Dim proc As New Process
Dim procInfo As New System.Diagnostics.ProcessStartInfo
procInfo.FileName = "TestApp.exe"
procInfo.RedirectStandardOutput = True
procInfo.UseShellExecute = False
proc.StartInfo = procInfo
proc.Start()
MsgBox(proc.StandardOutput.ReadToEnd)


Спасибо!
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 104

    TopList