Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2012, 08:51   #1
Simply-Art
Программист и
Участник клуба
 
Аватар для Simply-Art
 
Регистрация: 29.10.2006
Сообщений: 1,265
По умолчанию Нужно не корректно завершить программу (Delphi)

Я сам пишу программу на Delphi. Есть другая программа, которая запускает мою и ждет её завершения (вторая программа не моя и нет исходного кода). Во второй программе есть функция оповещения о завершении запущенной программы (в данном случае моей программы) с ошибкой. Сколько не пробовал, чужая программа всегда выдает что программу успешно запустила и выполнила, без ошибок. Как сделать так чтобы вторая программа считала что моя программа завершается с ошибкой?

Последний раз редактировалось Simply-Art; 15.05.2012 в 08:53.
Simply-Art вне форума Ответить с цитированием
Старый 15.05.2012, 10:13   #2
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Поробуйте просто завершить процесс вашей программы, по идее вторая должна отреагировать соответствующе. Скорей всего признак нормального завершения - это когда ваша программа посылает перед выключением оповещение второй программе-монитору.
"ковыряю изнутри" (с)
3D Hunter вне форума Ответить с цитированием
Старый 15.05.2012, 10:16   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

эммм,
Код:
 ExitProcess(1)
?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.05.2012, 12:13   #4
Simply-Art
Программист и
Участник клуба
 
Аватар для Simply-Art
 
Регистрация: 29.10.2006
Сообщений: 1,265
По умолчанию

Пробовал и как 3D Hunter говорил и в диспетчере задач убивал и
Код:
 ExitProcess(1)
и
Код:
Application.Terminate
Все равно говорит что корректно завершена работа. Возможно есть способ передать некий код той программе которая запускает мою, о том что все не так хорошо?
Simply-Art вне форума Ответить с цитированием
Старый 15.05.2012, 12:16   #5
googl
Форумчанин
 
Регистрация: 05.06.2010
Сообщений: 154
По умолчанию

все-таки было бы неплохо узнать каким образом определяется, что ошибка. все бы вопросы отпали
googl вне форума Ответить с цитированием
Старый 15.05.2012, 12:24   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Чтобы некорректо завершить процесс достаточно Halt(0);
Предварительно намутите работы процессору, выделите памяти, создайте обьектов, пустите их в работу...
Будет вам счасте.

Да и кто запретил вызвать RaiseException метод?

Последний раз редактировалось Человек_Борща; 15.05.2012 в 12:26.
Человек_Борща вне форума Ответить с цитированием
Старый 15.05.2012, 12:30   #7
Simply-Art
Программист и
Участник клуба
 
Аватар для Simply-Art
 
Регистрация: 29.10.2006
Сообщений: 1,265
По умолчанию

Цитата:
Сообщение от googl Посмотреть сообщение
все-таки было бы неплохо узнать каким образом определяется, что ошибка. все бы вопросы отпали
Мне бы было тоже проще. Забыл сказать, программа которая запускает мою, это SyncBack Free. Там есть функция запуска программы перед выполнением профиля, и галочка не запускать профиль если программа сфейлилась. Может кто и сможет определить способ, как сделать так, чтобы SyncBack считала что моя программа завершается с ошибкой и не запускала профиль на выполнение.

PS
Код:
Halt(0);
тоже не работает
Simply-Art вне форума Ответить с цитированием
Старый 15.05.2012, 20:45   #8
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

вообще-то при аварийном завершении в halt должно быть что угодно, только не 0.
s-andriano вне форума Ответить с цитированием
Старый 16.05.2012, 10:11   #9
Simply-Art
Программист и
Участник клуба
 
Аватар для Simply-Art
 
Регистрация: 29.10.2006
Сообщений: 1,265
По умолчанию

Блин перевел мануалы от программы SyncBack, и понял что не в моей программе дело, там просто функия считает что все хорошо если программа запустилась, а остальное для неё не важно
Цитата:
Abort the profile if the program fails: If enabled, and the Before program fails to start (because the program doesn't exist or cannot be run), then the profile will not run
Хотя там же есть функция
Цитата:
Wait until the program has finished before running profile
но даже вылетевшую с ошибкой программу считают успешно поработавшей и запускается профиль, бред такая логика лично для меня, ну да ладно.
Если чего-то придумали, как это обойти, пишите. Ну а я пока напишу о нелогичности разработчикам программы SyncBack, вдруг ответят.
Simply-Art вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить, что программа запущена и корректно её завершить Casper-SC Общие вопросы .NET 3 24.12.2010 23:12
Завершить программу в указанное время Человек_Борща Общие вопросы Delphi 9 17.09.2010 19:45
завершить программу в делфи 365307ксю БД в Delphi 3 22.06.2010 03:29
Как корректно завершить цикл? Iren Microsoft Office Excel 4 02.11.2007 09:58