exec в windows (запуск ехе в фон)

  • Автор темы Автор темы b0bah1
  • Дата начала Дата начала

b0bah1

Новичок
exec в windows (запуск ехе в фон)

Есть консольная программа console.exe
Требуется в Windows запустить ее в фон, и не ждать завершния ее работы.
console.exe - ничего не выводит в консоль.
Искал на форуме ответ на данный вопрос, нашел несколько примеров, но они не работали.
PHP ждал завершения выполнения console.exe, а уж потом возвращался к работе скрипта.
 
ты ни хрена не искал, т.к. я раз 10 писал про это

скачать "start.exe" (не пустать с start)
запустить start.exe php.exe -f ...
 
напрямую запустить в Windows программу и не ждать завершения ее работы (не важно консольная она или нет) не получится.
для этого требуется надстройка в виде CMD интерпретатор команд.

в php смотри функцию exec
используй в консоли используй команду START /? и смотри описание.

самое простое создать bat файл и его уже запускать, а в батнике уже start с параметрами
 
> напрямую запустить в Windows программу и не ждать завершения ее работы

Бред собачий, решение - выше. Еще могу порекомендовать собственную прогу runAfter.exe: выполнить команду шелла через несколько секунд. Очень удобно: запускаем через start.exe основной процесс, а через ранафтер - прибивалку, которая через нужное число секунд выполнится.

> в php смотри функцию exec

не нужно, проще system()

> используй в консоли используй команду START /? и смотри описание.
> самое простое создать bat файл и его уже запускать, а в батнике уже start с параметрами

Консольная *команда* Start не запускает ничего в фоновом режиме и для пхп совершенно бесполезна (строго говоря, чтобы исполнить команду start, хорошо бы cmd.exe запустить, но это делается автоматически). В отличии от программы start.exe, которую нужно скачать.
 
http://www.somacon.com/p395.php

-~{}~ 06.08.09 22:22:

Start background process using the WScript.Shell object
You can start the process using the Run method of the WScript.Shell object, which is built-in to Windows. By varying the second parameter, you can make the window hidden, visible, minimized, etc. By setting the third parameter to false, Run does not wait for the process to finish executing. This code only works on Windows.

$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("cmd /C dir /S %windir%", 0, false);

Start background process using popen and pclose
This code should work on Linux and Windows.
pclose(popen("start \"bla\" \"" . $exe . "\" " . escapeshellarg($args), "r"));
Start background process with psexec
This method requires installing the freeware pstools from sysinternals:
exec("psexec -d blah.bat");
Start process without a window
This is not really for background processes, but worth mentioning. Use the windows start command with /B switch to hide the window.
exec('start /B "window_name" "path to your exe"',$output,$return);

Link to this page: <a href="http://www.somacon.com/p395.php">Executing background processes from PHP on Windows</a>

Читать тут: http://tinyurl.com/l9xvlr
 
> Нашел еще одно решение.
Вообще-то оно давно есть в мануале.
[m]function.exec#35731[/m]
[m]function.exec#86329[/m]
 
Сверху