У меня проблема, когда веб-приложение должно (после взаимодействия с пользователем через Javascript)
1) откройте приложение Windows Forms
2) отправить параметр в приложение (например, идентификатор)
Соответственно, приложение Windows Forms должно иметь возможность
1) отправить параметры обратно в веб-приложение (обновление URL-адреса в порядке)
2) откройте веб-приложение в новом браузере, если оно не существует
Если открыто много окон браузера, важно обновить правильное.
Приложение Windows Forms находится в ASP.NET
Браузер IE6 +
Приложения контролируются и являются внутренними для конкретной организации, поэтому вопрос запуска настраиваемого приложения не стоит.
Вопрос А) Возможно ли это?
Вопрос Б) Как отправить параметры в открытое приложение Windows Forms из веб-приложения?
Вопрос C) При обновлении веб-приложения, как мне убедиться, что выбран правильный браузер?





Нет, не думаю, что это возможно. Подумайте о вирусах / троянах / шпионских программах. Если бы можно было запустить приложение с простой HTML-страницы, было бы очень легко установить вредоносное ПО. Браузеры созданы таким образом, чтобы вы не могли этого сделать.
Затем вставьте браузер в приложение Winforms
Да, это возникло как идея, но нам не разрешены такие серьезные изменения в приложении Winform. Спасибо хоть!
Вы можете использовать clickonce для развертывания и запуска приложения форм - это должно позаботиться об отправке параметра в приложение.
Насколько я понимаю, это поможет только во время запуска приложения, а не при общении с ним после его запуска?
То, о чем вы просите, возможно, но кажется неудобным.
Попытка вызвать приложение с веб-страницы - это не то, что вы могли бы сделать из соображений безопасности. Однако вы можете создать настольное приложение, которое будет связано с определенным типом файлов, а затем использовать тип содержимого на веб-странице, чтобы убедиться, что ваше приложение вызывается при открытии URL-адреса с этим типом. Это будет похоже на то, как MS Office обрабатывает документы .doc или .xls, или Media Player открывает файлы .mp3 или .wmv.
Вторая часть (открытие определенной веб-страницы из вашего приложения) проще. Поскольку вы должны знать адрес своей веб-страницы, создайте строку URL с нужными параметрами и откройте ее в браузере по умолчанию (есть много примеров того, как это сделать, образец ниже).
System.Diagnostics.Process.Start("http://example.com?key=value");
Если вы хотите обновить страницу в уже открытом браузере или использовать браузер по вашему выбору (т.е. всегда IE6 вместо Opera или Chrome), вам придется выполнить некоторую домашнюю работу, но это все еще довольно просто.
Открытие клиентского приложения из браузера должно быть легкой частью, ведь общение с ним после открытия загадывает меня. Кроме того, открыть браузер из клиентского приложения не составляет труда, но если он уже открыт - как мне выбрать нужный для обновления?
Проверить http://msdn.microsoft.com/en-us/library/8c6yea83(VS.85).aspx
Используя VBScript на своей веб-странице, вы можете вызвать открытое приложение Windows Forms и отправить ему ключи.
Это работает только в IE, и вам нужно настроить параметры безопасности, чтобы разрешить ActiveX.
Да, это отчасти в правильном направлении. Посмотрим на это! Спасибо
Хотя это может не полностью соответствовать вашему приложению, как насчет использования веб-службы и формы?
Кроме того, вы можете передавать параметры, чтобы гарантировать открытие IE6, а не Firefox.
System.Diagnostics.Process.Start("c:\ie6\ie6.exe http://www.example.com/mypage");
Итак, я действительно нашел ключ к части веб -> winform.
Следующий код был передан мне из веб-приложения, которое отправляет параметр в приложение winform. Я предполагаю, что это решение имеет некоторые факторы безопасности (например, позволяет запускать VBScript (и ActiveX?) На веб-странице. Однако для меня это нормально.
Код:
<script type = "text/vbscript" language = "vbscript">
<!--
Function OpenWinformApp(chSocialSecurityNumber)
Dim oWinformAppWebStart
Set oWinformAppWebStart = CreateObject("WinformAppWebStart.CWinformAppWebStart")
oWinformAppWebStart.OpenPersonForm CStr(chSocialSecurityNumber)
End Function
-->
</script>
Библиотека PokeIn соединяет ваше настольное приложение с вашим веб-приложением в режиме реального времени для каждого пользователя. Более того, благодаря обратному управлению состояниями ajax вы можете рассматривать оба своих приложения как одно.
Извините, уточню вопрос. И все это в безопасной корпоративной среде. Клиентское приложение запущено сегодня, поэтому проблема не в этом, а во взаимодействии.