Завершение процесса перед попыткой скопировать файлы - PullRequest
2 голосов
/ 14 мая 2010

Я разрабатываю установщик NSIS, чтобы обновить программу, которая работает в фоновом режиме. Очевидно, я хотел бы отправить сигналы завершения программы, потому что в противном случае я неоднократно получаю сообщение об ошибке «не могу написать». Как я могу это сделать, с ограниченными накладными расходами на размер установщика?

1 Ответ

1 голос
/ 14 мая 2010

Если в вашем приложении есть окно с уникальным именем класса, вы можете просто отправить ему WM_CLOSE / WM_QUIT или любое другое сообщение, которое вам нужно.

Или ваше приложение может зарегистрировать COM-объект локального сервера, который может вызвать деинсталлятор (системный плагин может вызывать методы COM)

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

В крайнем случае вы можете убить процесс с помощью одного из нескольких плагинов: KillProcDLL , Плагин процессов , Плагин KillProc и NsProcess

Кроме того, плагин Locked List может быть лучшей альтернативой.

...