Удалите приложение silverlight из браузера программным способом
Как удалить приложение silverlight 4 из браузера программно вместо использования contextmenu (например, если я хочу заменить контекстное меню)?
редактировать
Я нашел в "установка приложений Silverlight без участия браузера" как удалить, вызвав командную строку:
" %ProgramFiles%Microsoft Silverlightsllauncher.ехе" /удалить /origin:silverlight.net/content/samples/apps/...
Это можно использовать в: -
dynamic cmd = AutomationFactory.CreateObject("WScript.Shell");
cmd.Run(run, 1, true);
есть ли лучшее решение?
5 ответов
довольно уверен, что это невозможно, не прибегая к COM-взаимодействию, как говорит Майк, также я бы спросил, Если это хорошая идея, так как:
1) Удаление опции удаления, без сомнения, раздражает многих пользователей и является плохой практикой. 2) вы говорите, что хотите реализовать новое контекстное меню? Если это не приложение LOB, я бы опасался этого, так как многие пользователи не будут использоваться для доступа к контекстным меню в веб-приложении, которое для меня является плохим HCI. Если это приложение LOB, то установка / удаление программ будет решение ОК?
Я не уверен, что вы можете сделать это программно.
один из вариантов-заставить пользователя использовать программы добавления / удаления, чтобы удалить его.
другое-использовать опцию автоматической установки, чтобы удалить ее ( ссылка - http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2010/03/24/silverlight-4-rc-and-the-silent-installation.aspx) но это включает вызовы com-взаимодействия.
Майк.
решение, о котором вы упомянули, по-прежнему единственный способ сделать это. Это хороший штрих положить Application.Current.MainWindow.Close();
после этого, хотя приложение по-прежнему будет работать после удаления.
Марк
Это не ответ, но это связано с вашей проблемой. В официальном списке пожеланий Silverlight я добавил возможность сделать это довольно давно. К счастью, довольно мало пользователей согласны. С достаточным количеством голосов, надеюсь он появится в будущей версии Silverlight.
Проверьте мое решение здесь:не удалось удалить SIlverlight из приложения браузера программно я использовал код в нем в консольном приложении, которое было запущено приложением silverlight, которое он удалял. Silverlight извлек EXE в качестве ресурса в один из каталогов, а затем запустил его, используя что-то вроде следующего:
using (dynamic shell = AutomationFactory.CreateObject("WScript.Shell"))
{
shell.Run(@"C:\Users\yourusername\AppData\update.exe xapNameToUninstall");
}