Запуск программы

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

Запуск программы

Сообщение -=TsA=- » 04.10.2004 (Пн) 14:51

А как из VB запустить программу с параметрами, например:
program.exe a -f file >file.log
и дождаться окончания его выполнения?

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 04.10.2004 (Пн) 15:01

В функции Shell первым параметром путь к файлу и параматрам, второй стиль запущеного приложения возвращает ID процесса, лови его, а вообще недавно кому-то отвечал, поищи

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 04.10.2004 (Пн) 15:10

Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.10.2004 (Пн) 15:12

Если знаешь PID, то придётся открывать handle, и 90% что NT-based тебя пошлёт :)
Поэтому всё-таки createprocess, она сразу возвращает handle с максимальными правами доступа.
Добавление параметров очень простое: прямо без изменения вот эту свою строку и указывай :)
Для ожидания завершения удобно использовать Waiter :wink: - смотри в Проектах.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

Сообщение -=TsA=- » 04.10.2004 (Пн) 15:23

Shell не катит Файл File.log не создается (и по моему параметры не передаются, хотя я неуверен) хотя из батника все ок, но хотелось бы обойтись без него.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.10.2004 (Пн) 15:47

Аааааа...
Так тебе нужно перенаправление вывода :)
А оператор > передаётся как обычный параметр.
Так что изучай пример по перенаправлению консольного вывода куда угодно, в том числе и в файл.
Пример сей обретается в API-Guide, функция CreatePipe.


И ответь, наконец, на давно волнующий нас вопрос - таймер-то перевёлся в потокобезопасную форму? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

Сообщение -=TsA=- » 05.10.2004 (Вт) 6:25

>>И ответь, наконец, на давно волнующий нас вопрос - таймер-то перевёлся в потокобезопасную форму?

Неа, пришлось обычный таймер прикрутить.

-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

CreatePipe

Сообщение -=TsA=- » 06.10.2004 (Ср) 7:00

GSerg писал(а):Пример сей обретается в API-Guide, функция CreatePipe.


Ну привинтил я пример из API-Guide, теперь вызываемая программа ругается, что не найдена ддл хотя лежит она там-же, что и вызываемая прога, пытался выставлять lpEnvironment и lpCurrentDirectory, результат тот-же. :shock:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.10.2004 (Ср) 11:25

Проект запусти не через "Открыть", а даблкликом...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

Сообщение -=TsA=- » 06.10.2004 (Ср) 11:39

GSerg писал(а):Проект запусти не через "Открыть", а даблкликом...


Ругается не проект, а программа которая из него вызывается...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.10.2004 (Ср) 11:42

А currentdirectory для дочернего точно правильно задал?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

CreateProcess

Сообщение -=TsA=- » 06.10.2004 (Ср) 15:15

Код: Выделить всё
cmdLine="D:\Bin\bcc.exe -c D:\Data\test.dat"
WorkDir = "D:\Bin" & vbNullChar
CreateProcess vbNullString, cmdLine, pra, tra, True, 0, vbNullString, WorkDir,  sui, pi


Невидит dll который лежит рядом с bcc.exe :(

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.10.2004 (Ср) 15:19

Попробуй добавить финальный \ и убрать vbnullchar. Попробуй заменить True на 1. Если не поможет... ну проект кидани, что ли...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

Сообщение -=TsA=- » 06.10.2004 (Ср) 15:21

Попробую, если, что завтра кидану

-=TsA=-
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 142
Зарегистрирован: 21.09.2004 (Вт) 14:32
Откуда: Татарстан, Заинск

Сообщение -=TsA=- » 08.10.2004 (Пт) 11:19

Тема закрыта.
Спасибо GSerg за оказанную помощь в разрешении проблемы.

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 08.10.2004 (Пт) 13:06

Закрыта, так закрыта.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali


Вернуться в Visual Basic 1–6

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

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

    TopList  
cron