|
|
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
05.12.2019 17:16, ёёёёё пишет: > переводить вывод консольных приложений в мемо(и т.п.) чревато искажениями. > "Консолька" не всегда лишь просто печатает текст. gbak этим не страдает. в отличие от dcc32 Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2019, 17:20 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий оно кстати, кочует по интернетам из FAQа в FAQ... ёёёёё Код: pascal 1. 2. Эти комменты тоже так кочуют? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2019, 17:41 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
white_nigger, не, это совсем свежая лажа. А у меня там еще вместо бесконечного ожидания периодическая обработка событий, и еще древний косяк нашелся... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2019, 17:43 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
А, нет, это древнее зло: http://delphirus.com/article32.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2019, 17:51 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
Sinemurius Кстати, может кому интересно, написал процедурку для вызова из консольной программы другой консольной команды. При этом вывод вызываемой команды идет в основную консоль. Код: pascal 1. 2. 3. А если прога пишет не в oem, то вывод превратится в тыкву ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2019, 17:52 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
Василий 2 А если прога пишет не в oem, то вывод превратится в тыкву Не знаю насчёт проги, но cmd.exe, собака, в консоль пишет в оем, даже если в скрипте есть команда 'chcp 1251' и вывод идёт в ANSI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2019, 18:26 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
alekcvp Не знаю насчёт проги, но cmd.exe, собака, в консоль пишет в оем, даже если в скрипте есть команда 'chcp 1251' и вывод идёт в ANSI. Там, видимо, тоже прогеры такого типа были, вкорячили безусловный AnsiToOem ))) upd Проверил, всё нормально он пишет. chcp 1251 && cmd /? > outp дает правильную кодировку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2019, 18:59 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2019, 23:04 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
Василий 2 upd Проверил, всё нормально он пишет. chcp 1251 && cmd /? > outp дает правильную кодировку Я через программное перенаправление вывода брал, хотя может уже забыл чего за давностью, но точно помню что OemToAnsi() вызывать приходилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2019, 23:17 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
a-gulia69 Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2019, 00:47 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
alekcvp Я через программное перенаправление вывода брал, хотя может уже забыл чего за давностью, но точно помню что OemToAnsi() вызывать приходилось. Есть вероятность, что chcp влияет только на вывод в консоль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2019, 10:52 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
Рекомендую вместо интернета чаще в жедаевские либы заглядывать. большинство распространенных проблем там уже решены и достаточно качественно: https://github.com/Makhaon/jcl/blob/4199a5554797359974e48c4abd825a2250980971/jcl/source/windows/JclMiscel.pas#L210 https://github.com/Makhaon/jcl/blob/4199a5554797359974e48c4abd825a2250980971/jcl/source/windows/JclMiscel.pas#L236 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2019, 00:56 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
makhaon Рекомендую вместо интернета чаще в жедаевские либы заглядывать. большинство распространенных проблем там уже решены и достаточно качественно: https://github.com/Makhaon/jcl/blob/4199a5554797359974e48c4abd825a2250980971/jcl/source/windows/JclMiscel.pas#L210 https://github.com/Makhaon/jcl/blob/4199a5554797359974e48c4abd825a2250980971/jcl/source/windows/JclMiscel.pas#L236 Код: pascal 1. 2. 3. Вот за это я не люблю JCL/JVCL. Добавляешь юнит ради 1-2 процедур или компонентов, получаешь +2-3 мегабайта к экзешнику в нагрузку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2019, 18:01 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
alekcvp, можно же аккуратненько выкусить нужное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2019, 19:46 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
ёёёёё alekcvp, можно же аккуратненько выкусить нужное. Ну так о том и речь, что проще свою сделать, чем тянуть этот чемодан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2019, 10:46 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
09.12.2019 10:46, alekcvp пишет: > > Ну так о том и речь, что проще свою сделать, чем тянуть этот чемодан. да ну его нафиг, он же без ручки! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2019, 12:09 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
alekcvp ёёёёё alekcvp, можно же аккуратненько выкусить нужное. Ну так о том и речь, что проще свою сделать, чем тянуть этот чемодан. Нужная функция вполне автономна, к тому же она 1) уже готова 2) вероятно, протестирована ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2019, 13:44 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
09.12.2019 13:44, Василий 2 пишет: > > Нужная функция вполне автономна, к тому же она > 1) уже готова > 2) вероятно, протестирована а нахрена там WaitForInputIdle(... INFINITE ) перед WaitForSingleObject() ? и почему результат WaitForSingleObject() проверяется на WAIT_OBJECT_0 а не на WAIT_FAILED ? ы? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2019, 13:56 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий а нахрена там WaitForInputIdle(... INFINITE ) перед WaitForSingleObject() ? и почему результат WaitForSingleObject() проверяется на WAIT_OBJECT_0 а не на WAIT_FAILED ? WaitForInputIdle тут лишний - возможно, копипаст или наследие давних времен. Ну а WaitForSingleObject просто запускают, и только в случае успешного завершения с WAIT_OBJECT_0 возвращают код выхода процесса. В остальных случаях просто проваливаются ниже (а что еще делать, если Wait вернула FAILED?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2019, 11:29 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
10.12.2019 11:29, Василий 2 пишет: > > Ну а WaitForSingleObject просто запускают, и только в случае успешного завершения с WAIT_OBJECT_0 возвращают код выхода процесса. не совсем так. WaitForSingleObject не только к процессам применяется - там и мьютексы, и таймеры, и семафоры и т.д. https://docs.microsoft.com/ru-ru/windows/win32/sync/using-mutex-objects по хорошему, нужно делать CASE на результат вызова. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2019, 11:56 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий не совсем так. WaitForSingleObject не только к процессам применяется - там и мьютексы, и таймеры, и семафоры и т.д. https://docs.microsoft.com/ru-ru/windows/win32/sync/using-mutex-objects по хорошему, нужно делать CASE на результат вызова. *чешу в затылке* А это ты к чему вообще? Тут же вызывают для хэндла процесса. И какие варианты возврата вообще могут быть? WAIT_ABANDONED - не применимо, судя по описанию (только для мутексов) WAIT_OBJECT_0 - ОК, штатно завершился. Получить exit code WAIT_TIMEOUT - таймаут, но в данном случае не возникнет, т.к. infinite WAIT_FAILED - а тут вообще хз, что случилось. Лучшее, что можно сделать, это закрыть хэндлы. Да и в остальных случаях, кроме штатного завершения, это единственная мера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2019, 12:22 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
10.12.2019 12:22, Василий 2 пишет: > WAIT_FAILED - а тут вообще хз, что случилось. вот в этом случае как раз имеет смысл таки "спросить" GetLastError, что ж там такое произошло. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2019, 12:26 |
|
||
|
ShellExecute: задержка выполнения программы до отработки внешней программы
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий вот в этом случае как раз имеет смысл таки "спросить" GetLastError, что ж там такое произошло. Согласен, но тут уж функция так сделана, если получили отлуп - так и получили. По-хорошему, если уж им не хотелось кидать исключение, то надо получать lasterror и устанавливать его после CloseHandle (т.к. она обнуляет lasterror) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2019, 14:24 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2038787]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
137ms |
get topic data: |
10ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 455ms |

| 0 / 0 |
