столкнулся с занимательной проблемой: программа запускается нормально двойным щелчком на файле и работает. Но вот стоит ее запустить из WinExec по полному пути - она запускается, но логические цепочки выполнятся не хотят. Метод запуска- нормальный.
Это я так "ровно" сделал программу(не исключаю:lol, или при запуске из WinExec есть какие-то подвохи? Любые другие проги вроде запускаются без проблем.
Не пойму, почему месяцами работает при запуске вручную, а WinExec не хочет даже запустить нормально.
Этот топик читают: Гость
Ответов: 704
Рейтинг: 7
|
|||
карма: 0 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Neo писал(а): а WinExec не хочет даже запустить нормальноА ты не пробовал запустить, стандартно сделанный, линк на свою прогу через WinExec |
|||
карма: 22 |
| ||
Голосовали: | Neo |
Ответов: 704
Рейтинг: 7
|
|||
nesco, эво как все непросто и просто одновременно
Это обычный "порок" для WinExec, или я начудачил в программе своей так не слабо, что без ярлыка никак не желает? |
|||
карма: 0 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Neo писал(а): Это обычный "порок" для WinExec, или я начудачил в программе своей так не слабо, что без ярлыка никак не желает?Ярлык тут не причем. Надо принудительно установить внутри проги, при запуске, рабочую папку ту, из которой грузится приложение. При запуске самого приложения, рабочая папка назначается автоматически равной папаке запуска. При запуске же из-под WinExec, рабочей папкой по-дефолту будет папка запуска WinExex. Видимо в приложении есть места, где читается дефолтная папка |
|||
карма: 22 |
|
Ответов: 85
Рейтинг: 0
|
|||
А можно ли добавить в компонент Winexec событие onError?
А то в режиме wait, если запускаемое приложение запустилось но выдало окно error в MsgBox и аварийно завершилось, то Winexec продолжает ждать события onExec до бесконечности. |
|||
карма: 0 |
|
Ответов: 1173
Рейтинг: 49
|
|||
bayan писал(а): если запускаемое приложение выдало окно error в MsgBox то Winexec продолжает ждать успешного завершения приложения до бесконечности |
|||
карма: 0 |
|
Ответов: 4631
Рейтинг: 749
|
|||
Winexec не сможет отследить подобного рода ошибки.
|
|||
карма: 26 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Netspirit писал(а): Winexec не сможет отследить подобного рода ошибки.Уточнить надо -- чужие ошибки И вообще -- Winexec не отслеживает ничего в чужом приложении, оно отслеживает только наличие процесса чужого приложение и будет ждать завершение этого процесса до бесконечности. |
|||
карма: 22 |
|
Ответов: 85
Рейтинг: 0
|
|||
Не совсем, приложение которое запускает winexec выдаёт ошибку типа окно MSGbox - Не найден файл такой-то, работа программы невозможна, но winexec продолжает считать что программа выполняется, хотя она уже давно вылетела.
|
|||
карма: 0 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
bayan писал(а): winexec продолжает считать что программа выполняется, хотя она уже давно вылетела.WinExec будет ждать до тех пор, пока система не освободит процесс и не скажет, что его нет. И вылетела, еще не означает, что этого процесса все еще нет в системе, надо было проверить его в диспетчере |
|||
карма: 22 |
|
Ответов: 85
Рейтинг: 0
|
|||
У меня на отладке программа висит после winexec даже когда процесс ликвидировался из диспетчера задач.
Значит система не говорит что процесса нет. Или скорее всего winexec ждёт только onExec - только успешного выполнения приложения, а на остальные события не реагирует. Имхо |
|||
карма: 0 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
bayan писал(а): Значит система не говорит что процесса нетЭто значит, что в системе не срабатывает семафор завершения некорректного процесса ------------ Дoбавленo в 15.34: bayan писал(а): а на остальные события не реагируетОн не реагирует ни на какие сообщения системы, кроме как на завершение функции ожидания завершения WaitForSingleObject, если это о чем-то говорит. Это API функция самой системы и относится к защитным функциям потоков, срабатывает при освобождении семафора занятости потока |
|||
карма: 22 |
|
Ответов: 196
Рейтинг: 1
|
|||
почему то в примере работы консольной программы
code_36359.txt отображает не в той кодировке результат. может кто подскажет как исправить? |
|||
карма: 0 |
| ||
файлы: 1 | code_36359.txt [454B] [174] |
Ответов: 4631
Рейтинг: 749
|
|||
z80, Charset
|
|||
карма: 26 |
|
14