|
|
|
Проверка наличия запущенного процесса.
|
|||
|---|---|---|---|
|
#18+
Приветствую коллеги. Есть простая система обновления версий. До недавнего времени всё работало нормально, но с появлением у клиентуры мегабыстрых компьютеров и мегаскорых сетей появилась проблемка. Для начала принцип работы системы (он, пожалуй, знаком многим). 1. Проверка наличия новой версии на FTP сервере. 2. Если есть новая версия, скачивается во временный файл. 3. Старая програмка запускает внешний адейтер и закрывается. 4. Апдейтер удаляет старую версию, переименовывает временный файл и запускает его. Так вот, теперь время на скачивание стало настолько мало, что программа-инициатор не успевает закрыться. Хочу в апдейтере сделать проверку наличия запущеного процесса программы-инициатора. Есть мысли использовать 2 варианта: используя CreateToolhelp32Snapshot и искать в списке инициатора по названию или передавая апдейтеру дескриптор инициатора в командной строке и проверять через GetProcess. Первый мне кажется громоздким, второй некрасивым что ли. Не подскажете, есть вариант лучше чем эти два или лучший из этих двух. Заранее спасибо! AndrewTR ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2011, 13:34:55 |
|
||
|
Проверка наличия запущенного процесса.
|
|||
|---|---|---|---|
|
#18+
Обычно люди в таких случаях используют именованный мутекс. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2011, 13:37:48 |
|
||
|
Проверка наличия запущенного процесса.
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Я тут почитал... т.е. программа инициатор создаёт mutex с именем при запуске. Апдейтер не производит никаких действий, пока его, апдейдера попытка создать mutex с тем же именем возвращает ошибку. Я правильно понял работу именованых мьютексов? Если так, то есть одна загвоздка. Апдейтер - универсальная программулька, один и тот же апдейтер (в смысле не процесс а exe файлик) идёт с остальными (около десятка) разными программками. Разница только в update.ini где указаны параметры соединения с ftp сервером. Хотя как вариан наверное можно в этот ini файл записать имя мьютекса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2011, 17:20:08 |
|
||
|
Проверка наличия запущенного процесса.
|
|||
|---|---|---|---|
|
#18+
AndrewTRХотя как вариан наверное можно в этот ini файл записать имя мьютекса. А зачем? Можно использовать само имя программы. ЕМНИП пространство имён имеет иерархию, так что ты спокойно можешь дать мутексу имя "MyUpdater\MyProject1.exe". Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2011, 17:41:51 |
|
||
|
Проверка наличия запущенного процесса.
|
|||
|---|---|---|---|
|
#18+
а если: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. затем просто: Код: plaintext 1. 2. 3. не так уж много кода.... да и запущенный exe всегда можно переименовать, а затем только закрыть, и удалять не обязательно. Если не критичен одновременный запуск приложения - это может быть выход... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2011, 13:52:46 |
|
||
|
Проверка наличия запущенного процесса.
|
|||
|---|---|---|---|
|
#18+
AndrewTR, А мне почемуто кажется что как то так правильней будет: Инициатор: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Апдейтер: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2011, 14:58:41 |
|
||
|
Проверка наличия запущенного процесса.
|
|||
|---|---|---|---|
|
#18+
Всё решилось, спасибо за идею с мьютексами! В качестве имени использовалась контрольная сумма - весчь откровенно уникальная :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2011, 18:30:29 |
|
||
|
Проверка наличия запущенного процесса.
|
|||
|---|---|---|---|
|
#18+
demian111AndrewTR, А мне почемуто кажется что как то так правильней будет: Апдейтер: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Вот этот механизм почему и перестал работать на машинах с ОС WinVista и Win7. А вот с мьютексами - всё ОК. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2011, 18:33:32 |
|
||
|
Проверка наличия запущенного процесса.
|
|||
|---|---|---|---|
|
#18+
AndrewTRВот этот механизм почему и перестал работать на машинах с ОС WinVista и Win7 Врешь Проверено на win7, работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2011, 18:37:53 |
|
||
|
Проверка наличия запущенного процесса.
|
|||
|---|---|---|---|
|
#18+
А как узнать полный путь к EXE, а не тока имя как здесь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 23:41:52 |
|
||
|
Проверка наличия запущенного процесса.
|
|||
|---|---|---|---|
|
#18+
GluuА как узнать полный путь к EXE, а не тока имя как здесь? а надо делать не так, как в древнем посте. запускается всегда программа-апдейтер. Юзеру пофигу, что там за ссылкой скрывается. Проверяет обновления, скачивает новые файлы, запускат уже реальную программу. Профит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2017, 23:46:45 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=137&tid=2042014]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 388ms |

| 0 / 0 |
