XBAP (브라우저 호스팅 응용 프로그램)의 브라우저 버전 (예 : IE6, IE7 또는 IE8)을 확인할 수 있습니까? XBAP에서 브라우저 버전을 찾고 싶습니다.WPF에서 브라우저 버전 감지
답변
Microsoft 포럼의 도움을 받아 마침내 작동하는 방향으로 이끌었습니다. .. C++에서 NET 개념 증명 (아래
using namespace System::Windows::Forms;
[STAThread]
String^ GetBrowserVersion() {
String^ strResult = String::Empty;
WebBrowser^ wb = gcnew WebBrowser();
String^ strJS = "<SCRIPT>function GetUserAgent() { return navigator.userAgent; }</SCRIPT>";
wb->DocumentStream = gcnew MemoryStream(ASCIIEncoding::UTF8->GetBytes(strJS));
while (wb->ReadyState != WebBrowserReadyState::Complete) {
Application::DoEvents();
}
String^ strUserAgent = (String^)wb->Document->InvokeScript("GetUserAgent");
wb->DocumentStream->Close();
String^ strBrowserName = String::Empty;
int i = -1;
if ((i = strUserAgent->IndexOf("MSIE")) >= 0) {
strBrowserName = "Internet Explorer";
} else if ((i = strUserAgent->IndexOf("Opera")) >= 0) {
strBrowserName = "Opera";
} else if ((i = strUserAgent->IndexOf("Chrome")) >= 0) {
strBrowserName = "Chrome";
} else if ((i = strUserAgent->IndexOf("FireFox")) >= 0) {
strBrowserName = "FireFox";
}
if (i >= 0) {
int iStart = i + 5;
int iLength = strUserAgent->IndexOf(';', iStart) - iStart;
strResult = strBrowserName + " " + strUserAgent->Substring(iStart, iLength);
}
return strResult;
}
좋은 생각, 고마워! 여기에서 C#과 WPF 사용하기. 내 코드에는 WebBrowser 컨트롤이 있고, 하나님의 사랑 때문에 브라우저의 버전을 얻을 수있는 곳을 찾을 수 없습니다. 내가 한 일은 외부 HTML 페이지 (내 .exe와 같은 위치)를 사용하여 다음과 같이로드했습니다. WebBrowserMain.Navigate ("pack : // siteoforigin : ,,, useragent.html"); 그리고 useragent.html 내에서 사용자 에이전트 정보를 수집하는 javascript를 통해 내 프로그램의 메소드를 호출했습니다. 감사합니다. – Rowan
나는 WPF가 아니라 실버 라이트를 의미한다고 생각하십니까? (그들은 비슷하지만 별개의 기술입니다).
위의 MSDN 페이지에서 System.Windows.Browser.BrowserInformation
Class
특히
System.Windows.Browser.BrowserInformation.BrowserVersion
살펴 보자
using System;
사용 System.Windows.Controls을; using System.Windows.Browser;
public class Example
{
public static void Demo(System.Windows.Controls.TextBlock outputBlock)
{
outputBlock.Text +=
"\nSilverlight can provide browser information:\n"
+ "\nBrowser Name = " + HtmlPage.BrowserInformation.Name
+ "\nBrowser Version = " +
HtmlPage.BrowserInformation.BrowserVersion.ToString()
+ "\nUserAgent = " + HtmlPage.BrowserInformation.UserAgent
+ "\nPlatform = " + HtmlPage.BrowserInformation.Platform
+ "\nCookiesEnabled = " +
HtmlPage.BrowserInformation.CookiesEnabled.ToString() + "\n";
}
}
XBAP (XAML 브라우저 응용 프로그램) - 가능한 WPF 응용 프로그램이 있습니까? 브라우저에서 호스팅 http://msdn.microsoft.com/en-us/library/aa970060.aspx – VoidDweller
실제로 XAML 브라우저 응용 프로그램을 의미하는 것은 아닙니다. 귀하의 솔루션을 사용하면 Silverlight에 대한 새로운 종속성이 생겼습니다. 찾았다. Microsoft 포럼에서 도움을 얻은 또 다른 해결책은 제 질문에 대한 제 응답을 참조하십시오. – Rob
@ 롭 :? 당신은 우리가보고 할 수있는 방법이 필요 그렇다면, 그것은 무엇을 우리의 응용 프로그램에 대한 – VoidDweller
이 필요로 실행하는 것을 브라우저 버전의 응용 프로그램이 실행되고 있습니다. 지원 목적으로 생성 된 보고서로 모든 종류의 시스템 정보가 있습니다. – Rob