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

Хотя вышеупомянутый ответ работает, Ромен Гай (основной разработчик Android) показывает лучший метод в своем блоге, который использует меньше памяти, используя шейдер, не создающий копию растрового изображения. Общий смысл функциональности приведен здесь:

BitmapShader shader;
shader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);

Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setShader(shader);

RectF rect = new RectF(0.0f, 0.0f, width, height);

// rect contains the bounds of the shape
// radius is the radius in pixels of the rounded corners
// paint contains the shader that will texture the shape
canvas.drawRoundRect(rect, radius, radius, paint);

Преимущества этого по сравнению с другими методами заключаются в том, что он:

  • не создает отдельную копию растрового изображения, который использует много памяти с большими изображениями [vs большинство других ответов здесь]
  • поддерживает антиализующий метод [vs clipPath]
  • поддерживает альфа [vs xfermode + porterduff method]
  • поддерживает аппаратное ускорение [vs clipPath method]
  • только рисует один раз на холст [vs xfermode и методы клипа]

Я создал RoundedImageView основан на этом коде, который обертывает эту логику в ImageView и добавляет правильную поддержку ScaleType и дополнительную округленную границу.

5
задан Matt Hamilton 25 September 2008 в 22:53
поделиться

7 ответов

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

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

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

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

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

6
ответ дан 13 December 2019 в 22:19
поделиться

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

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

Это только работает над IE, хотя и необходимо скорректировать настройки безопасности для разрешения ActiveX.

1
ответ дан 13 December 2019 в 22:19
поделиться

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

1
ответ дан 13 December 2019 в 22:19
поделиться

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

0
ответ дан 13 December 2019 в 22:19
поделиться

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

0
ответ дан 13 December 2019 в 22:19
поделиться

Хорошо, таким образом, я на самом деле нашел ключ к разгадке сети-> часть 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>

0
ответ дан 13 December 2019 в 22:19
поделиться

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

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

System.Diagnostics.Process.Start("c:\ie6\ie6.exe http://www.example.com/mypage");
0
ответ дан 13 December 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: