Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi
Войти
Регистрация
Восстановить пароль
 
TermenatorX
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 145
1

Можно ли надеяться, что программа закроется раньше запуска другой

19.03.2017, 00:54. Просмотров 327. Ответов 13
Метки нет (Все метки)

Допустим, ситуация, есть аптдейтер он загрузил апдейт, в котором содержится что-то и он обновленны, он запускает апдейт. Можно ли с уверненостью говорить, что если мы запустим из него апдейт и закроем, то апдейт выполнитя позже его закрытия.

Добавлено через 7 минут
Можно ли обойтись без программы-посредника, третий лишний. И создавать целую программу ради того чтобы закрыть одну и запустить другую - это странно.

Добавлено через 9 минут
Решение найдено, без третего не обойтись. В программе которая запущена изначально проверяем существует ли новый апдейтер если да, то загружаем, потом запукаем апдейтер и закрываем первую программу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2017, 00:54
Ответы с готовыми решениями:

Как проверить, что программа запущена (избежать повторного запуска)?
Знаю, что можно с помощью FindWindow, но вдруг FindWindow найдет просто другую...

Как работает программа,если можно последовательные этапы, после запуска(что вводить и т.д.)
//---------------------------------------------------------------------------...

Можно ли поставить таймер запуска на батинке, чтоб программа начинала работу через 30 минут после запуска
Можно ли поставить таймер запуска на батинке? Чтоб программа начинала работу...

Можно ли как-то узнать, что программа была перенесена с одного компьютера на другой
нужно это для того, чтобы программа работала только на доверенных компьютерах....

как сделать , чтобы программа запоминала что было раньше
Я делаю домино на QBasic и там я сделал перемещение фишки по "столу" таким...

13
krapotkin
3415 / 3022 / 1047
Регистрация: 14.04.2014
Сообщений: 14,672
Записей в блоге: 15
19.03.2017, 05:58 2
часто для этого из первой программы создают простой bat-файл, запускают его
а он убивает первую программу, обновляет файлы и запускает уже новую
а новая программа первым делом убивает bat-файл
0
magirus
19.03.2017, 06:26
  #3

Не по теме:

надежда умирает последней

0
northener
пофигист широкого профиля
3423 / 2323 / 630
Регистрация: 15.07.2013
Сообщений: 13,742
20.03.2017, 02:48 4
Цитата Сообщение от TermenatorX Посмотреть сообщение
Решение найдено, без третего не обойтись.
Логично и разумно.
0
DenNik
Непрофессионал
1801 / 1386 / 307
Регистрация: 26.07.2011
Сообщений: 7,827
20.03.2017, 17:02 5
а без третьего никак, да? например, в программе предусмотреть в самом-самом начале работы, еще до создания главной формы, проверку наличия присутствия файла обновления в каталоге с программой. если файл есть, зпускается процедура обновления (распаковки/копирования и т.п.), после чего удаляется апдейт и сообщение "обновление завершено, перезапустите приложение". по-моему, примерно так и серьезные приложения иногда делают
0
YuryK
1030 / 847 / 337
Регистрация: 08.12.2016
Сообщений: 3,283
21.03.2017, 00:09 6
Цитата Сообщение от TermenatorX Посмотреть сообщение
Решение найдено, без третего не обойтись. В программе которая запущена изначально проверяем существует ли новый апдейтер если да, то загружаем, потом запукаем апдейтер и закрываем первую программу.
и где здесь третий? Программа и апдейтер. Программа (при наличии обновлений) загружает апдейтер и закрывается. Апдейтер после завершения обновления запускает программу.
0
TFullControl
403 / 325 / 191
Регистрация: 20.10.2016
Сообщений: 1,033
21.03.2017, 16:57 7
Да здался тот апдейтер, ПО само проверяет обновления, скачивает новый exe (если надо), создает батник, (который, после заданной паузы, удаляет старый exe и запускает новый). После этого ПО запускает батник и закрывается. Новый exe при старте проверяет наличие батника и убивает если находит. Я лично делаю так и походу не 1 я, krapotkin ранее описал ту же схему.
Единственный косяк в этой схеме: если ПО работает от имени админа, то после обновления новый exe от него запущен не будет, придется руками перезапускать.
0
TermenatorX
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 145
31.03.2017, 13:39  [ТС] 8
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure DestroyAndRun(run: string);
var
  Temp, AppName: string;
begin
  Temp := 'delete.bat';
  AppName := ExtractFileName(ParamStr(0));
  AssignFile(output, Temp);
  Rewrite(output);
  WriteLn('taskkill /f /im ' + AppName);
  WriteLn('del ' + AppName);
  WriteLn(run);
  WriteLn('del ' + Temp);
  CloseFile(output);
  ShellExecute(0, '', 'delete.bat', '', '', SW_HIDE);
end;
1
DenNik
Непрофессионал
1801 / 1386 / 307
Регистрация: 26.07.2011
Сообщений: 7,827
31.03.2017, 13:49 9
Цитата Сообщение от TermenatorX Посмотреть сообщение
WriteLn('taskkill /f /im ' + AppName);
а КУДА ты пишешь? здесь нет записи в файл
0
TFullControl
403 / 325 / 191
Регистрация: 20.10.2016
Сообщений: 1,033
31.03.2017, 13:52 10
Цитата Сообщение от TermenatorX Посмотреть сообщение
WriteLn('del ' + Temp);
Не знал что батник способен убить сам себя, проверил, работает, круто!
0
TermenatorX
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 145
07.04.2017, 21:22  [ТС] 11
DenNik, надеюсь это была шутка
0
DenNik
Непрофессионал
1801 / 1386 / 307
Регистрация: 26.07.2011
Сообщений: 7,827
07.04.2017, 21:31 12
TermenatorX, вот ЗАПИСЬ В ФАЙЛ
Pascal
1
WriteLn(output,'del ' + AppName);
первым параметром идет дескриптор файла, вторым - данные
а у тебя пишет в консоль. при том что неизвесно, консольный у тебя пример или нет
0
TermenatorX
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 145
09.04.2017, 14:42  [ТС] 13
DenNik, Вы знаете о существовании стандартных потоков ввода/вывода?
0
DenNik
Непрофессионал
1801 / 1386 / 307
Регистрация: 26.07.2011
Сообщений: 7,827
09.04.2017, 21:56 14
TermenatorX, это просто предварительно объявленная в модуле System файловая переменная. для ленивых.
я о ней не знал и особого расстройства от этого не испытал. в силу того, что мне не лень объявить в своей программе переменную - я предпочитаю полный контроль над программой, чтобы было видно, что, где, когда и какого типа используется в коде.

о какой "стандартности" идет речь?
0
09.04.2017, 21:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2017, 21:56

я начал изучение Joomla, можно ли надеяться на удаленную работу(фриланс и аутсорсинг) используя эти знания
Хотелось бы работать самостоятельно без начальства, можна ли реально заработать...

Узнать какие DLL использует программа для запуска на другой машине
Уважаемые господа! Сегодня столкнулся с тем (да-да, прогаю я не давно и...

подскажите как сделать чтобы программа работала и выводила информацию о рейсах которыми можно воспользоваться для прибытия в пункт назначения раньше з
в справочной автовокзала хранится расписание движения автобусов. Для каждого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru