CAB Uninstaller не может удалить запущенную программу - PullRequest
0 голосов
/ 06 сентября 2018

Я поддерживаю приложение .NET 3.5 CF, работающее в Window Mobile 6. Есть ли способ завершить процесс приложения при запуске UNINSTALLER?

В настоящее время, если пользователь не «правильно» завершил работу с программным обеспечением, прежде чем пытаться удалить его из меню «Настройки»> «Удалить программы» (чтобы процесс продолжался), он получает сообщение об ошибке, в котором говорится, что программное обеспечение не может быть удалено должным образом.

Я бы хотел, чтобы деинсталлятор убил запущенный процесс во время деинсталляции, чтобы предотвратить это. Но я никак не могу найти способ манипулировать процессом удаления (пользовательские действия и т. Д.).

Для установки мы используем проект установщика SmartDevice Setup, если это поможет.

1 Ответ

0 голосов
/ 07 сентября 2018

Microsoft поддерживает использование установочной библиотеки DLL. Эта DLL должна реализовать 4 обратных вызова. Установщик / деинсталлятор Windows CE / Mobile будет вызывать до четырех обратных вызовов во время установки и удаления.

Обратными вызовами установки являются InstallInit и InstallExit, а обратными вызовами удаления являются UninstallInit и UninstallExit. Должен использоваться заголовок ce_setup.h, поставляемый с Windows CE / Mobile SDK.

Я рекомендую использовать Uninstall_Init и убить исполняемый файл, который нужно удалить.

Пример кода для возможной функции уничтожения: https://github.com/hjgode/win-mobile-code/blob/master/iKill2/locktaskbar.h,, см. KillExeWindow.

Ссылка: https://msdn.microsoft.com/en-us/library/aa924308.aspx

...