Можете ли вы запустить внешний процесс с Silverlight? - PullRequest
8 голосов
/ 06 апреля 2010

Сборка System.Diagnostics является частью среды Silverlight CLR, но включает только классы, относящиеся к отладке, класс Process недоступен. Есть ли другой способ запустить внешний процесс из приложения Silverlight?

Ответы [ 5 ]

9 голосов
/ 27 апреля 2010

Да, вы можете в Silverlight 4 (вне браузера с повышенным полным доверием), например:

dynamic cmd = AutomationFactory.CreateObject("WScript.Shell");
cmd.Run("calc.exe", 1, true);
2 голосов
/ 07 апреля 2010

Кратких ответов нет, но есть сложный ...

Если вы запускаете SL4 вне браузера и указали, что у вас все в порядке с elivated (что на самом деле означает, что SL не работает в режиме IE-Protected, а скорее как стандартное приложение ...), есть способ вы с помощью WMI в основном делать то, что вы хотите. Этот пост поможет вам - http://justinangel.net/CuttingEdgeSilverlight4ComFeatures. Просто имейте в виду, это высококлассное модное кодирование, так что следите за собой;)

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * на Windows Phone и Silverlight для Windows Phone *. Существует отличный материал для Windows Phone Trainng , и не забывайте Блог разработчиков Windows Phone

2 голосов
/ 07 апреля 2010

Используя повышенное доверие вне приложения браузера (мы будем обозначать ETOOB или OOBET, если коротко) Приложение Silverlight 4, вы можете запустить новое приложение в новом процессе, если это сервер автоматизации COM. Например: -

dynamic excel = ComAutomationFactory.CreateObject("Excel.Application"); 

Должен запускать Excel в своем собственном прогрессе.

2 голосов
/ 06 апреля 2010

Если вы запускаете свое приложение либо в браузере, либо в качестве стандартного приложения вне браузера, то возможность запуска другого процесса нарушит модель Silverlight, предоставив вашему приложению доступ к компьютеру вне изолированной программной среды браузера.

Приложение с полным доверием сможет сделать это.

Почему вы хотите запустить другой процесс?

0 голосов
/ 06 апреля 2010

Если вы используете Silverlight внутри страницы ASPX, вы можете использовать HtmlDocument.Window.Invoke для вызова функции JavaScript, которая, в свою очередь, может вызывать статический метод на вашей странице (используя атрибут WebMethod)

Статья здесь хорошо описывает мост JS / ASPX.

Доброжелательность,

Dan

NB. Не уверен, что я согласен с тем, что вы пытаетесь сделать; просто хочу помочь вам сделать это :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...