|
С 1 программы запустить 2 программу
|
|||
---|---|---|---|
#18+
Здравствуйте! Мне нужна Ваша помощь. Запуская первую программу "dogovor.exe" проверяю наличие обновления данной программы на сервере с помощью Pver_1 = AGETFILEVERSION(ArrayVersion_1, pat1+"\dogovor.exe") && Первая программа на ПК пользователя Pver_2 = AGETFILEVERSION(ArrayVersion_2, ALLTRIM(rek_cotr.path_upd)+"dogovor.exe") && Программа обновленная на сервере IF ArrayVersion_1[11] == ArrayVersion_2[11] ELSE = MESSAGEBOX('Необходимо обновить программу ',48,'Проверка') Вот здесь возможно ли мне закрыть текущую программу "dogovor.exe" и запустить "update_dogovor.exe" ? Как это можно сделать? Обе программы находятся в одной папке Pzapusk = 'update_dogovor.exe' && Вторая программа где копируется "dogovor.exe" с сервера на ПК пользователя ! &Pzapusk && Запускаю программу ENDIF Спасибо за Ваше время. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 12:51 |
|
С 1 программы запустить 2 программу
|
|||
---|---|---|---|
#18+
-tim-, *=ShellExecute(0,"OPEN","c:\bin\1.exe","","",-1) Не? или run ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 12:56 |
|
С 1 программы запустить 2 программу
|
|||
---|---|---|---|
#18+
Amiri, Мне нужно сначала закрыть программу "dogovor.exe" А затем запустить "update_dogovor.exe" ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 13:05 |
|
С 1 программы запустить 2 программу
|
|||
---|---|---|---|
#18+
-tim-, RELEASE WINDOWS CLOSE ALL ON SHUTDOWN QUIT так не пробовали? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 13:16 |
|
С 1 программы запустить 2 программу
|
|||
---|---|---|---|
#18+
ON SHUTDOWN Do ExitProg ... DO MainMenu.mpr DO FORM MainForm.SCX READ EVENTS ON SHUTDOWN PROCEDURE ExitProg IF MessageBox('Closed app?',4+32+256,'Bye')=7 RETURN ENDIF ... CLEAR EVENTS RETURN ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 13:19 |
|
С 1 программы запустить 2 программу
|
|||
---|---|---|---|
#18+
Amiri, Спасибо что уделили время, но используя это я просто выйду из программы "dogovor.exe". А программа "update_dogovor.exe" должна еще и запустится. Но как? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 13:25 |
|
С 1 программы запустить 2 программу
|
|||
---|---|---|---|
#18+
Amiri, Ну задача не так проста, но решений у неё много как не странно. Я лично решил задачу так, при запуске программа сама себя проверяет, если версия устарела, то она спрашивает разрешение у пользователя, если отказывается, то функционал программы переходит в режим ReadOnly, если же согласен, то качаем новый экзешник, даём ему другое имя и создаём батник, где прописываем переименование и запуск программы, сам же батник запускается с задержкой в 5 секунд, чтобы успеть закрыть приложение. Ну а реализацию думай сам, может быть тебе такое решение не понравится. Просто есть ещё более сложные решения, вплоть до создания сервиса, который работает независимо от пользователя и обновляет любое ПО, делает его перезапуск или завершение, даже управление можно забрать на себя, тут полёт фантазии не ограничен ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 13:29 |
|
С 1 программы запустить 2 программу
|
|||
---|---|---|---|
#18+
Amiri, Или рассмотрим так IF ArrayVersion_1[11] == ArrayVersion_2[11] ELSE = MESSAGEBOX('Необходимо обновить программу ',48,'Проверка') Pzapusk = 'update_dogovor.exe' && Вторая программа где копируется "dogovor.exe" с сервера на ПК пользователя RUN &Pzapusk && Запускаю программу ENDIF Тогда в программе 'update_dogovor.exe' как закрыть программу "dogovor.exe" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 13:29 |
|
С 1 программы запустить 2 программу
|
|||
---|---|---|---|
#18+
-tim-, почитайте о ShellExecute и CreateObject думаю это то что вы хотите. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 13:31 |
|
С 1 программы запустить 2 программу
|
|||
---|---|---|---|
#18+
-tim-Amiri, Спасибо что уделили время, но используя это я просто выйду из программы "dogovor.exe". А программа "update_dogovor.exe" должна еще и запустится. Но как? В первом посте написано как Код: sql 1.
Проблема не в том что она не запустится, а в том что она не сможет заменить "dogovor.exe" пока он запущен. Т.е. "update_dogovor.exe" должен сначала дождаться завершения "dogovor.exe". В простейшем случае копировать с интервалом 0.1-0.5 сек и проверять что замена прошла успешно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 13:34 |
|
С 1 программы запустить 2 программу
|
|||
---|---|---|---|
#18+
-tim-, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 13:35 |
|
С 1 программы запустить 2 программу
|
|||
---|---|---|---|
#18+
-tim-Тогда в программе 'update_dogovor.exe' как закрыть программу "dogovor.exe" ? Никак. "dogovor.exe" должен зам закрыться сразу после запуска 'update_dogovor.exe'. 21113635 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 13:50 |
|
С 1 программы запустить 2 программу
|
|||
---|---|---|---|
#18+
-tim-, Просто поменяйте немного логику. Как сделано у меня. есть прога UPG, она запускается, проверяет есть ли обновление, если есть, качает, потом запускает, если нет, просто, сразу запускает. Никаких коллизий. И все, в несколько строк (ну на лист точно влазит))) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2018, 16:12 |
|
|
start [/forum/topic.php?fid=41&fpage=11&tid=1581836]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 272ms |
total: | 404ms |
0 / 0 |