Как взаимодействовать между веб-приложением и приложением Windows Form

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

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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
0
13 714
8

Ответы 8

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

Извините, уточню вопрос. И все это в безопасной корпоративной среде. Клиентское приложение запущено сегодня, поэтому проблема не в этом, а во взаимодействии.

Bruce 24.09.2008 12:44

Затем вставьте браузер в приложение Winforms

Sklivvz 24.09.2008 12:51

Да, это возникло как идея, но нам не разрешены такие серьезные изменения в приложении Winform. Спасибо хоть!

Bruce 24.09.2008 13:01

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

Насколько я понимаю, это поможет только во время запуска приложения, а не при общении с ним после его запуска?

Bruce 24.09.2008 13:02

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

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

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

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

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

Открытие клиентского приложения из браузера должно быть легкой частью, ведь общение с ним после открытия загадывает меня. Кроме того, открыть браузер из клиентского приложения не составляет труда, но если он уже открыт - как мне выбрать нужный для обновления?

Bruce 24.09.2008 12:55

Проверить http://msdn.microsoft.com/en-us/library/8c6yea83(VS.85).aspx

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

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

Да, это отчасти в правильном направлении. Посмотрим на это! Спасибо

Bruce 24.09.2008 13:05

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

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

Кроме того, вы можете передавать параметры, чтобы гарантировать открытие 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 вы можете рассматривать оба своих приложения как одно.

Другие вопросы по теме