![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Народ, опять прошу совета - есть такая задача - нужно по нажатию клавиши в моей программе закрыть приложение и только после этого запустить другую программу - обе программы используют одно железо и обе в монопольном доступе потому иначе никак - как это можно сделать? Вариант с WinExec в обработчике FormDestroy не прокатывает ибо форма еще не закрыта, аппаратное устройство "не отпущщено"... Подскажите, плиз, как решить траблу?
Последний раз редактировалось s.Mobi, 05.10.2007 в 01:24. |
|
#2
|
||||
|
||||
|
Попробуй запускать прогу в разделе finalization юнита с формой.
|
|
#3
|
||||
|
||||
|
Создай батник. Перед выходом его запускай. В нём сделай, чтобы была задержка\пауза на выполнение где-нить секунду, и не забудь прописать в нем, чтобы он себя потом удалил.
|
|
#4
|
|||
|
|||
|
Вариант с батником напрашивается сам собой но не хотелось этого делать... Может есть более красивый метод?
|
|
#5
|
|||
|
|||
|
Вообщето нету, можеш создать конешно еще одну программу, которая будет ждать завершения другой, и получает код завершения, если он напрмер равен 200 то запускаетьс другая программа....
лучше в конце основоного begin'a пропиши строку запука другого приложения, тогда не должно быть конфлтикта в оборудовании |
|
#6
|
|||
|
|||
|
Цитата:
|
|
#7
|
||||
|
||||
|
s.Mobi в модуле с формой в конце добавь
Код:
initialization finalization WinExec(PChar(Application.ExeName), SW_SHOWNORMAL); |
|
#8
|
|||
|
|||
|
Таки "ек"...
Железо не отпускается.... Похоже что придется через батник делать, хоть и очень не хотелось... ![]() |
|
#9
|
||||
|
||||
|
Цитата:
|
|
#10
|
||||
|
||||
|
Батник - наиболее рациональный выход из ситуации, как мне видится - никаких доп прог писать не надо и ресурсы системные сэкономит батник.
|
|
#11
|
||||
|
||||
|
Цитата:
|
|
#12
|
||||
|
||||
|
mav_c, ну хотя, ты прав, можно ведь так сделать:
Запускаем из себя второе приложение, а в нем уже есть код проверки занятости ресурсов в цикле, как только ресурсы освободились (закрылась копия программы) - выходим из цикла и загружаемся дальше. |
|
#13
|
|||
|
|||
|
Таак.... а можно поподробнее, желательно с примером... Про проверку освобождения ресурсов...
|
|
#14
|
||||
|
||||
|
Все зависит от того, как ты к ним подключаешься. Можно процедуру подключения впихнуть в блок try...except,а если это ф-я, то можно смотреть возвращаемое значение.
Кстати, наверняка должна быть возможность отключиться от железа вручную, без закрытия формы. Ведь подумай сам, при закрытии формы как-то железо освобождается. Я понимаю, что при закрытии формы винда сама освобождает память, чистит мусор за нами, отключает железо и т.д., но ведь КАК-ТО она отключает нас от железа, верно? ![]() По-этому, расскажи к какому типу железяки мы коннектимся, как это происходит и есть ли какой-либо набор ф-ий\процедур\инструкций для работы с этой железякой? Последний раз редактировалось 4kusNick, 06.10.2007 в 13:48. |
|
#15
|
||||
|
||||
|
Может тайна кроется в реестре? Или в системных файлах?
|