|
|
|
Как "popen()", но...
|
|||
|---|---|---|---|
|
#18+
Есть ли способ открыть другую консольную программу, перехватив ее стандартный и ошибочный потоки(можно и в одном)? Как юниксовая popen("proga.exe 2>&1", "r"), но только заточенная исключительно под виндоус (popen в виндоусе глючит: открывает при каждом вызове черную дос консольку, даже если вызывающая прога GUI или СGI - нe то, чтобы глюк, но все-таки...) Слыхал про CreateProcess, но какие ей параметры задать для нужного мне перехвата я так и не врубилсz... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2003, 17:40 |
|
||
|
Как "popen()", но...
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. В dwCreationFlags должен быть передан флаг CREATE_NO_WINDOW (возможно в комбинации с другими), тогда для нового процесса не будет создано окно консоли. Это полезно для CGI. В lpStartupInfo передается указатель на структуру типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Полагаю, смысл последних 3-х параметров объяснять не нужно? Правда не уверен, что так можно перехватить вывод неконсольного приложения. Скорее всего нельзя. Винда не Юникс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2003, 07:28 |
|
||
|
Как "popen()", но...
|
|||
|---|---|---|---|
|
#18+
Винда не Юникс. о да... когда они сделают сокеты и файловые дескрипторы совместимыми? риторический вопрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2003, 07:32 |
|
||
|
|

start [/forum/topic.php?fid=57&tid=2035750]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 392ms |

| 0 / 0 |
