Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.02.2012, 16:41
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 1  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
По умолчанию Настройка пре-билда

Во FlashDevelop-е в настройках проекта в Pre-Build Command Line пишу
Код:
"$(ProjectDir)\someFile.exe"
При этом виснет весь девелоп до перезагрузки. Никаких окон не появляется, но должно появляться консольное окно (это весь функционал exe-программы). Почему так, как побороть?
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 27.02.2012, 17:23
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 2  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
попробуй запускать через батник

Старый 27.02.2012, 17:39
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 3  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А Вондовс понимает что-нть типа
Код:
executable &
В смысле, чтобы не в том же процессе запускался, а в дочернем / вообще в отдельном.
__________________
Hell is the possibility of sanity

Старый 28.02.2012, 00:01
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 4  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Путем различных поисков и экспериментов достигнуто следующее:
Содержимое батника:
Код:
start Full_path_to_file\ExampleForBat.exe
taskkill /IM cmd.exe /f
2я строка при этом убивает 1й процесс, а 2й, свежезапущенный, остается
И особое внимание на то, что путь должен быть абсолютный, а не относительный, т.к. батник не знает с какой позиции ему начинать смотреть папки.
В настройках девелопа
Код:
$(ProjectDir)\ExampleForBat\bin\Debug\bat.bat
На выходе:
девелоп не виснет, но ждет окончания работы прогарммы
exe запускается и сам по себе работает корректно
Компиляция не происходит, в output:
Код:
Running process: ExampleForBat.as3proj" -ipc b9d2b83d-65a5-43a1-8271-82b35178de0a -version "4.6.0; 3.1" -compiler "D:\Program Files (x86)\FlashDevelop\Tools\flexsdk" -notrace -library "D:\Program Files (x86)\FlashDevelop\Library"
Building ExampleForBat
Running Pre-Build Command Line...
cmd: ExampleForBat\bin\Debug\bat.bat

ExampleForBat>start ExampleForBat\bin\Debug\ExampleForBat.exe 

ExampleForBat>taskkill /IM cmd.exe /f 
“бЇҐи*®: Џа®жҐбб "cmd.exe", б Ё¤Ґ*вЁдЁЄ*в®а®¬ 5896, Ўл« §*ўҐаиҐ*.
Build halted with errors.
Done(1)
Часть путей от дисков сократил.

В общем вот такая петрушка. На этом и застопорился. Может кто еще что подскажет?

ЗЫ. Как в output-е избавиться от нечитаемых символов, типа бЇҐ
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 28.02.2012, 13:39
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 5  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
А зачем консоль бьешь? Не надо. Оно само отвалится, если ехе - консольный и корректно отработал.
Насчет путей не уверен, но консоль запускаться должна с CurrentDir=батникDir, т.е в папке самого батника.
ЗЫ. В пребилде бить плеер хорошо, ибо подвисает при дебуге нередко.


Последний раз редактировалось alexcon314; 28.02.2012 в 13:42.
Старый 28.02.2012, 15:59
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Помоему в Виндовсе чтобы отобразить текущую директорию %PWD% - но может как-то не совсем так
Т.е. посмотри откуда FD батник запускает, не факт, что он его из его же директории запускает.

Ну и как уже было сказано, если ExampleForBat.exe заканчивает работу со статусом 0, то он как бы сам и закроется.
Помоему, start /B - если окошко консоли мешает. Т.е. так оно запустится без того, чтобы создавать новое окно.
chcp <кодировка> - на сколько я знаю, меняет кодировку в консоли.
__________________
Hell is the possibility of sanity

Старый 28.02.2012, 22:58
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 7  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Цитата:
А зачем консоль бьешь?
Пытался следовать этому совету:
Цитата:
В смысле, чтобы не в том же процессе запускался, а в дочернем / вообще в отдельном.
Цитата:
Помоему в Виндовсе чтобы отобразить текущую директорию %PWD% - но может как-то не совсем так
Да, не совсем. %cd% Главное было дать направление для поиска
Цитата:
Т.е. посмотри откуда FD батник запускает, не факт, что он его из его же директории запускает.
Батник отрабатывает и запускает приложение. После этого девелоп пытается безуспешно что-то сделать.
Цитата:
Ну и как уже было сказано, если ExampleForBat.exe заканчивает работу со статусом 0
Он не должен заканчивать работу. Да, можно запускать приложение, не зависимо от манипуляций в ФД, но этот вариант - не вариант.

Сейчас поменял пути и атрибут B при start-е согласно рекомендациям. Поведение следующее (кстати, если команду из пребилда перенести в постбилд, ничего не меняется):
Запускается батник, запускается приложение, консоль остается висеть и ждет команды, в output девеолпа выводится сообщение, что компиляция прошла успешно и все замирает. Откомпиленный проект в дебаге открывается только после закрытия консоли (способ завершения значения не имеет)
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 29.02.2012, 08:33
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 8  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Чтобы консоль закрыть можно в конец батника добавить exit.
Провел у себя такой тест.
В папку (где лежит .as3proj) с проектом вложил батник и myExe.exe.
Код:
start myExe.exe
exit
В пребилд вписал start.bat.
Результат: ехе стартует, консоль не показвается, в процессах ее нету. Но пока не закроешь ехе билд не продолжается.
В постбилд вписал start.bat.
Результат: ехе стартует, консоль не показвается, в процессах ее нету. Билд суксессфул.Но пока не закроешь ехе плеер не запускается.
Ну, хоть с путями все понятно.
Собственно, вместо myExe можно запускать для наглядности calc или notepad:
Код:
start notepad
exit
Результат тот же.
Проблема действительно имеет место быть. TanaTiX, сори, сразу не въехал.
В чем может быть причина? Надо посмотреть сорсы FD. Внешне похоже на то, что пост/пребилды запускаются в отдельном потоке, к которому джойнится до его завершения основной поток, тот, в которм выполняется компиляция и запуск плеера. Вспомогательный поток для пре/постбилда имеет свойство завершаться после завершения всех запущенных им команд, будь то батник или ехе. С одной стороны вроде бы логично, с другой - вот такие траблы.

Добавлено через 5 часов 21 минуту
Ок. В сорсах бегло найти ничего толкового не удалось, да может это и не FD проблема, а fcsh.
Решение.
Расположение файлов .bat и .exe как я указал выше.
Код:
REM start.bat
start start.vbs
exit
Добавим туда же, в папку проекта start.vbs
Код:
' start.vbs
Set WshShell = WScript.CreateObject("WScript.Shell") 
WshShell.Run "myExe.exe", 1, false
Прописываем start.bat в пре/постбилд.
Билдим.
Путь к ехе можно указать полный и положить его куда хочешь.


Последний раз редактировалось alexcon314; 29.02.2012 в 13:59.
Старый 29.02.2012, 19:18
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 9  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Раз уж тут речь зашла о VB... а что будет если FD запустить из под Cygwin? Может так получится, что для него шеллом будет bash, а не cmd?
__________________
Hell is the possibility of sanity

Старый 01.03.2012, 08:42
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 10  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Мысль, конечно, интересная. Поменять шило на мыло .
Вообще, занятная ассоциация: VB<->cygwin.. мозг клинит.

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:38.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.