Как взаимодействовать между веб-приложением и приложением Windows Form - PullRequest
5 голосов
/ 24 сентября 2008

У меня проблема с веб-приложением (после взаимодействия с пользователем через Javascript)
1) открыть приложение Windows Forms
2) отправить параметр в приложение (например, идентификатор)

Соответственно, приложение Windows Forms должно иметь возможность
1) отправить параметры обратно в веб-приложение (обновление URL возможно)
2) откройте веб-приложение в новом браузере, если оно не существует
Если открыто много окон браузера, важно обновить правильное окно.

Приложение Windows Forms находится в ASP.NET
Браузер IE6 +
Приложения контролируются и являются внутренними для конкретной организации, поэтому речь не идет о запуске специального приложения.

Вопрос А) Возможно ли это?
Вопрос B) Как отправить параметры в открытое приложение Windows Forms из веб-приложения?
Вопрос C) При обновлении веб-приложения как убедиться, что выбран правильный браузер?

Ответы [ 8 ]

6 голосов
/ 24 сентября 2008

То, что вы просите, возможно, но кажется неловким.

Попытка вызвать приложение с веб-страницы - это не то, что вы могли бы сделать из соображений безопасности. Однако вы можете создать настольное приложение, которое будет связано с определенным типом файлов, а затем использовать тип контента на веб-странице, чтобы убедиться, что ваше приложение вызывается при открытии URL-адреса с этим типом. Это будет похоже на то, как MS Office обрабатывает документы .doc или .xls или Media Player открывает файлы .mp3 или .wmv.

Вторая часть (открытие определенной веб-страницы из вашего приложения) проще. Поскольку вы должны знать адрес своей веб-страницы, создайте строку URL-адреса с нужными параметрами и откройте ее в браузере по умолчанию (есть множество примеров того, как это сделать, пример ниже).

System.Diagnostics.Process.Start("http://example.com?key=value");

Если вы хотите обновить страницу в уже открытом браузере или использовать браузер по вашему выбору (т. Е. Всегда IE6 вместо Opera или Chrome), вам придется выполнить домашнее задание, но это все еще довольно просто.

2 голосов
/ 24 апреля 2012

PokeIn библиотека соединяет ваше настольное приложение с вашим веб-приложением в режиме реального времени / для пользователя. Более того, благодаря управлению обратным состоянием ajax вы можете рассматривать оба приложения как одно.

1 голос
/ 24 сентября 2008

Просмотрите "зарегистрированные протоколы" (например, здесь и здесь ). Я знаю, что Skype делает это, чтобы совершать исходящие телефонные звонки с веб-страницы. Но, вероятно, потребуются некоторые изменения в приложении win для перехвата параметров из URL.
Я не пробовал это, но это должно быть возможно

1 голос
/ 24 сентября 2008

Выезд http://msdn.microsoft.com/en-us/library/8c6yea83(VS.85).aspx

Используя VBScript на своей веб-странице, вы можете вызвать открытое приложение Windows Forms и отправить ему ключи.

Это работает только в IE, и вам нужно настроить параметры безопасности, чтобы разрешить ActiveX.

0 голосов
/ 30 сентября 2008

Хорошо, так что я на самом деле нашел ключ к вебу -> часть winform.

Следующий код был передан мне из веб-приложения, которое отправляет параметр в приложение winform. Я предполагаю, что это решение имеет некоторые факторы безопасности (например, разрешает запуск VBScript (и ActiveX?) На веб-странице. Хотя это нормально для меня.

Код:

<script type="text/vbscript" language="vbscript"><br> <!--<br> Function OpenWinformApp(chSocialSecurityNumber)<br> Dim oWinformAppWebStart<br> Set oWinformAppWebStart = CreateObject("WinformAppWebStart.CWinformAppWebStart")<br> oWinformAppWebStart.OpenPersonForm CStr(chSocialSecurityNumber)<br> End Function<br> --><br> </script>

0 голосов
/ 26 сентября 2008

Хотя это может не совсем соответствовать вашему приложению, а как насчет использования веб-службы и формы?

Кроме того, вы можете передавать параметры для обеспечения IE6, а не открытия Firefox.

System.Diagnostics.Process.Start("c:\ie6\ie6.exe http://www.example.com/mypage");
0 голосов
/ 24 сентября 2008

Вы можете использовать clickonce для развертывания и запуска приложения форм - это должно позаботиться об отправке параметра в приложение.

0 голосов
/ 24 сентября 2008

Нет, я не думаю, что это возможно.
Подумайте о вирусах / троянах / шпионских программах. Если бы можно было запустить приложение с простой HTML-страницы, было бы очень легко установить вредоносное ПО.
Браузеры созданы для того, чтобы вам этого не делать.

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