![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() итак. есть некая утилита которая работает через командную строку.
моё приложение написанное на дельфи посылает ей команды, используя найденную в сети функцию GetDosOutput. если команда успешно отработана,то утилита ничего не возвратит,то есть пустую строку.если же при выполении команды произошла ошибка то вернется сообщение об ошибке. Соответственно я проверяю возвращаемый рез-тат и если он пустой,значит команда успешна,значит моя прога продолжает что либо делать. Но вот незадача,в одном месте эта сторонняя утилита завершается с ошибкой,то есть не просто выводит в ответ сообщение об ошибке что немогу выполнить команду, а резко завершается,сбой какойто.и в ответ моя функция не получает сообщение с ошибкой а получает пустой результат, и я незнаю как определить что это пустой результат в случае успешного выполнения команды,или же это пустота изза того что процесс утилиты резко завершился. Может как то можно проверить что процесс вызванный функцией GetDosOutput завершился преждевременно. И ещё,при такой ошибке на экране появляется сообщение от винды7 что эта утилита завершилась (не моя прога а сторонняя утилита) Возникшая проблема привела к прекращению работы программы. Windows закроет эту программу, а если есть известный способ устранения проблемы, уведомит вас об этом. - можно ли это сообщение както скрыть от глаз юзера? вот сама функция Код:
|
#2
|
||||
|
||||
![]() попробуй посмотреть результат WaitForSingleObject, особенно когда он WAIT_FAILED, далее смотреть GetLastError. так же можно посмотреть на результат GetExitCodeProcess.
Пишу программы за еду. __________________ |
#3
|
||||
|
||||
![]() что-то не могу минимальный проект реализовать
![]() "сторонняя программа" вызывает ошибку: Код:
но GetDosOutput возвращает текст "Runtime error 6 at 00403A52" ![]() ну да ладно с этим... а вот GetExitCodeProcess как раз возвращает 6 Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Snake22 (12.10.2012)
|
#4
|
|||
|
|||
![]() Цитата:
![]() в случае норм выполнения возвращает ноль а при ошибке 3221225477. спасибо! =) |
#5
|
|||
|
|||
![]() а можно ли както еще сделать чтоб не вылезало окно винды сообщающее что утилита была остановлена?
![]() Если надо скину утилиту с командой вызывающей крах/ может вот здесь что-то указать надо?какой нить флаг например: Код:
|
#6
|
||||
|
||||
![]() это в настройках Windows отключается. свойства системы - отчет об ошибках.
Пишу программы за еду. __________________ |
#7
|
||||
|
||||
![]() Есть еще такая штука, как перехват системой исключений в консольных приложениях, см. InitExceptions/DoneExceptions. Правда, это в своем приложении, и не уверен, что будет работать в порожденном процессе.
|