Запуск екзешника

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Запуск екзешника

Сообщение KPEATOP » 16.11.2009 (Пн) 16:07

Запускаю екзешник grad1.bat и жду окончания его работы, чтобы взять результаты из создаваемого им файла grad1.res
Все работало нормально без указания пути к екзешнику (где был мой екзешник, там и grad1.bat). Нужно было переместить grad1.bat в другое место. Указал при запуске путь к нему C:\Program Files\NGDU\grad1.bat он перестал запускаться из моей программы. Самостоятельно он нормально запускается. Как повлияло указание пути к grad1.bat ? Что нужно сделать, чтоб он и оттуда запускался из моей проги ? Заранее сенкс!

Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32.dll" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
Private Const SYNCHRONIZE As Long = &H100000
Private Const INFINITE As Long = &HFFFFFFFF

Sub HotPu()
hProcess = OpenProcess(SYNCHRONIZE, 0, Shell("C:\Program Files\NGDU\grad1.bat", vbNormalFocus))
WaitForSingleObject hProcess, INFINITE
CloseHandle hProcess

Open "C:\Program Files\NGDU\grad1.res" For Input As #1
...............
Close #1
End Sub
Вечность пахнет нефтью

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Запуск екзешника

Сообщение Debugger » 16.11.2009 (Пн) 16:12

екзешник grad1.bat

Так экзешник или батник?

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: Запуск екзешника

Сообщение KPEATOP » 16.11.2009 (Пн) 16:42

конечно батник. Ошибся. Ну так все таки, почему батник не запускается , когда я ввел путь ?
Вечность пахнет нефтью

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: Запуск екзешника

Сообщение awl100Alex » 16.11.2009 (Пн) 17:49

Ничто не повлияло, это глюки в компе у тебя. :? Все работает при любых путях...

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: Запуск екзешника

Сообщение KPEATOP » 17.11.2009 (Вт) 15:00

У меня grad1.bat почему то не создает grad1.res и далее ошибка из моей программы, что она не может найти grad1.res
Когда без прописывания пути запускаю grad1.bat из того же места, где мой екзешник, все нормально. Проста так запускаю grad1.bat тоже все нормально. Ошибка только когда прописываю путь к grad1.bat
Вечность пахнет нефтью

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: Запуск екзешника

Сообщение Twister » 17.11.2009 (Вт) 16:07

Покажи код батника и расскажи в двух словах что он должен делать.
А я все практикую лечение травами...

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: Запуск екзешника

Сообщение KPEATOP » 17.11.2009 (Вт) 16:38

Кода батника у меня нет, это не мой батник. Он считывает данные из файла WWOD.DAT, производит кое какие расчеты и результаты скидывает в GRAD1.res Но когда я пропичываю путь и запускаю батник, он не создает GRAD1.res , хотя без пути он нормально все делает.
Вечность пахнет нефтью

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Запуск екзешника

Сообщение Денис » 17.11.2009 (Вт) 16:58

KPEATOP писал(а):Кода батника у меня нет, это не мой батник.

Файл BAT это текстовый файл, открывается блокнотом. Surprise!!!
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Запуск екзешника

Сообщение iGrok » 17.11.2009 (Вт) 18:41

KPEATOP писал(а):Кода батника у меня нет, это не мой батник. Он считывает данные из файла WWOD.DAT, производит кое какие расчеты и результаты скидывает в GRAD1.res Но когда я пропичываю путь и запускаю батник, он не создает GRAD1.res , хотя без пути он нормально все делает.

А GRAD1.res, случаем, не создаётся в папке, откуда запускается программа? Если это тест из под IDE - то в папке с vb6.exe ?
label:
cli
jmp label

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Запуск екзешника

Сообщение Debugger » 17.11.2009 (Вт) 20:54

Если он батник и вправду делает то, что описал автор, то это довольно странно. Или же автор публично вешает лапшу и не хочет сознаваться, что у него - экзешник. (с расширением батника).
Кстати,
Код: Выделить всё
ChDir App.Path

спешит помочь нам.

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: Запуск екзешника

Сообщение KPEATOP » 18.11.2009 (Ср) 9:00

Лапшу я никому не вешаю. Объясню еще раз, может неправильно объяснил. У меня есть 3 файла Grad1.bat , Grad1.exe и WWOD.dat
При запуске Grad1.bat данные считываются из WWOD.dat , обрабатываются и создается файл Grad.res
код батника: @GRAD1.exe >GRAD1.res
Эти три файла (Grad1.bat, Grad1.exe и WWOD.dat) я могу переносить хоть куда и при самостоятельном запуске (запускаю Grad1.bat вручную) проограмма работает всегда и везде, т.е. все считает и создает GRAD1.res в том числе и в папке C:\Program Files\NGDU\
Я сделал запуск Grad1.bat из своей программы (программа написана на VB5) без прописания пути C:\Program Files\NGDU\, просто shell ("Grad1.bat",1)
и запускал ее из среды VB5, т.е. Grad1.bat, Grad1.exe и WWOD.dat находились в папке с екзешником VB5.
Когда я делаю свой екзешник из VB5 (запуск такой же shell ("Grad1.bat",1)) и переношу его вместе с Grad1.bat, Grad1.exe и WWOD.dat в папку C:\Program Files\NGDU\ тоже все нормально работает.
Но когда запускаю свою программу из среды VB5, чтобы по шагам посмотреть ход моей программы (мне это надо), а файлы Grad1.bat, Grad1.exe и WWOD.dat находятся в папке C:\Program Files\NGDU\, я естественно прописываю путь к батнику C:\Program Files\NGDU\Grad1.bat
И вот тут то Grad1.bat не работает, не создается файл Grad1.res
Не понимаю в чем дело.
Вечность пахнет нефтью

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Запуск екзешника

Сообщение Хакер » 18.11.2009 (Ср) 10:37

И ты ради того, чтобы записать вывод exe-шника в файл используешь батник? Стыд тебе.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: Запуск екзешника

Сообщение KPEATOP » 18.11.2009 (Ср) 10:51

Это не мой екзкшник. Я не могу его исправить. Как есть так есть
Вечность пахнет нефтью

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: Запуск екзешника

Сообщение KPEATOP » 18.11.2009 (Ср) 10:52

и батник тоже не мой. Это чужая прога, чужие файлы Grad1.bat , Grad1.exe и WWOD.dat
Вечность пахнет нефтью

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Запуск екзешника

Сообщение Хакер » 18.11.2009 (Ср) 10:54

Ну батник то ты можешь исправить или вообще не использовать?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: Запуск екзешника

Сообщение KPEATOP » 18.11.2009 (Ср) 11:23

Если запускать Grad1.exe , то не создается файл Grad1.res
Он создается только когда запускаешь батник
Вечность пахнет нефтью

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Запуск екзешника

Сообщение Хакер » 18.11.2009 (Ср) 11:32

Нда, тяжелый случай.

Ты понимаешь смысл содержания батника, в частности, что в батнике делает символ >?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: Запуск екзешника

Сообщение KPEATOP » 18.11.2009 (Ср) 11:41

нет не понимаю, я батниками не занимался и что же мне сделать ?
Вечность пахнет нефтью

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Запуск екзешника

Сообщение Хакер » 18.11.2009 (Ср) 11:46

Учить фундаментальные вещи типа того, что такое @, >, | и прочее.

> и >> это обозначения перенаправления вывода в файл. Всё, что программа будет печатать в STDOUT, напечатается не на консольном окне, а в файл.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Запуск екзешника

Сообщение Денис » 18.11.2009 (Ср) 11:58

Короче говоря
shell ("Grad1.bat",1)
заменить на
shell ("@GRAD1.exe >GRAD1.res",1)
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Запуск екзешника

Сообщение Хакер » 18.11.2009 (Ср) 11:59

Денис, ты добиваешься того, чтобы я тебя забанил? Есть какой-то предел бреда, который ты можешь породить и выпостить за ограниченный интервал времени?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: Запуск екзешника

Сообщение KPEATOP » 18.11.2009 (Ср) 13:07

Мне же нужно запускать из дериктории C:\Program Files\NGDU\
Тогда так ?

shell ("@C:\Program Files\NGDU\GRAD1.exe >C:\Program Files\NGDU\GRAD1.res",1)

не получается так
Вечность пахнет нефтью

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Запуск екзешника

Сообщение Хакер » 18.11.2009 (Ср) 13:32

shell ("@C:\Program Files\NGDU\GRAD1.exe >C:\Program Files\NGDU\GRAD1.res",1)

Я кажется сказал, что Денис написал бредятину. Но ты, видимо, доверяешь ему больше и решил всё-таки проверить, да?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: Запуск екзешника

Сообщение KPEATOP » 18.11.2009 (Ср) 13:40

Проверил. А как же мне быть ? Как мне батник запустить из другой дериктории, чтоб он работал ?
Вечность пахнет нефтью

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Запуск екзешника

Сообщение Хакер » 18.11.2009 (Ср) 13:55

Чел, ты адекватный?

Мы кажется разобрались, что батник тебе не нужен. Тебе нужно запустить exe-шник и перенаправить его вывод в файл. Тебе это надо сделать. Правильным способом, а не тем неправильным, что предложил денис.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Запуск екзешника

Сообщение Денис » 18.11.2009 (Ср) 14:00

Хакер писал(а):Я кажется сказал, что Денис написал бредятину.

Да, сказал! Но не объяснил, почему это именно бредятина. Потому что я так не считаю. Почему shell нельзя вызывать, передав в качестве параметра строку с параметрами (рекурсивно)?
Объясни, в чем я не прав?

Почему нельзя задать рабочую папку с помощью ChDir а потом вызвать Shell так как я предложил?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: Запуск екзешника

Сообщение KPEATOP » 18.11.2009 (Ср) 14:10

Хакер писал(а):Чел, ты адекватный?

Мы кажется разобрались, что батник тебе не нужен. Тебе нужно запустить exe-шник и перенаправить его вывод в файл. Тебе это надо сделать. Правильным способом, а не тем неправильным, что предложил денис.


Если без батника, то как мне перенаправить вывод екзешника в файл. Я это и пытаюсь узнать. Подскажите как это сделать.
Вечность пахнет нефтью

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Запуск екзешника

Сообщение alibek » 18.11.2009 (Ср) 16:03

Денис писал(а):Да, сказал! Но не объяснил, почему это именно бредятина.

А своей головы у тебя нет?
Перенаправление реализует cmd, а не Windows.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Запуск екзешника

Сообщение alibek » 18.11.2009 (Ср) 16:10

KPEATOP писал(а):Подскажите как это сделать.

Поискать по форуму через CreateProcess.
Lasciate ogni speranza, voi ch'entrate.

KPEATOP
Бывалый
Бывалый
 
Сообщения: 291
Зарегистрирован: 02.12.2002 (Пн) 16:33
Откуда: Russia

Re: Запуск екзешника

Сообщение KPEATOP » 18.11.2009 (Ср) 16:17

Поищу конечно! Мне CreateProcess ни о чем не говорит. Я думал, что здесь новичкам в VB тоже помогают.
Ладно поищу, спасибо!
Вечность пахнет нефтью

След.

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

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

Сейчас этот форум просматривают: Mail.ru [бот] и гости: 12

    TopList  
cron