C# týden November Black Friday
Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
Pouze tento týden sleva až 80 % na e-learning týkající se C#
Avatar
Michal Pflegshörl:16. října 13:14

Ve WinForm aplikaci používám WebBrowser. Příští rok končí Internet Explorer a já mám obavy zda bude WebBrowser i nadále spolehlivě fungovat, protože používá engine Internet Exploreru.

Zkusil jsem: Zkoušel jsem přejít z WebBrowser na WebViewCompatible. Bohužel nevím jak u WebViewCompatible získat DocumentText a GetElementsBy­TagName.

Chci docílit: Potřebuji aby servery, které již nebudou fungovat na Internet Exploreru, nadále fungovaly v prohlížeči mé aplikace.

 
Odpovědět
16. října 13:14
Avatar
Odpovídá na Michal Pflegshörl
Michal Štěpánek:17. října 8:23

Myslím, že montuješ víc věcí do jednoho. Internet Explorer je prohlížeč (jeden z mnoha).

Potřebuji aby servery, které již nebudou fungovat na Internet Exploreru...

Servery běží na nějakém operačním systému, poskytují nějaká data a je jim úplně šumák, v čem si je uživatel bude zobrazovat. Nemají s Internet Explorerem nic společného a v podstatě o jeho existenci ani nevědí.

Nahoru Odpovědět
17. října 8:23
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na Michal Štěpánek
Michal Pflegshörl:17. října 8:40

Možná, že jsem se asi nevyjádřil úplně správně.
V praxi se mi občas stane, že některé webové systémy, např. Czechpoint, na nějakou dobu (asi než Microsoft nebo správci webu provedou opravu) přestanou fungovat v IE zatímco v Google Chrome nebo Edge fungují bez problémů.

Používám Visual Studio 2015, aplikace je .NET Framework 4.7.2.
Při spouštění formuláře musím použít tento kód

int BrowserVer = webBrowser1.Version.Major;
int RegVal;

if (BrowserVer >= 11)
        RegVal = 11001;
else if (BrowserVer == 10)
        RegVal = 10001;
else if (BrowserVer == 9)
        RegVal = 9999;
else if (BrowserVer == 8)
        RegVal = 8888;
else
        RegVal = 7000;

RegistryKey Key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", true);
Key.SetValue(Process.GetCurrentProcess().ProcessName + ".exe", RegVal, RegistryValueKind.DWord);
Key.Close();

Přiznám se, že přesně nevím co dělá, ale díky němu funguje WebBrowser na formuláři stejně jako IE v Pc na kterém aplikace běží.

Pomohlo by mi, kdyby nějak podobně šly přiřadit WebBrowseru vlastnosti Chromu nebo Edge.

 
Nahoru Odpovědět
17. října 8:40
Avatar
Michal Pflegshörl:17. října 10:28

Nastavení Edge jsem snad vyřešil následujíci úpravou

int RegVal;

int WindowsVerzeMajor = Environment.OSVersion.Version.Major;
int WindowsVerzeMinor = Environment.OSVersion.Version.Minor;

if (WindowsVerzeMajor == 10
 || (WindowsVerzeMajor == 6 && WindowsVerzeMinor > 1))
{
        RegVal = 12001;
}
else
{
        int BrowserVer = webBrowser1.Version.Major;

        if (BrowserVer >= 11)
                RegVal = 11001;
        else if (BrowserVer == 10)
                RegVal = 10001;
        else if (BrowserVer == 9)
                RegVal = 9999;
        else if (BrowserVer == 8)
                RegVal = 8888;
        else
                RegVal = 7000;
}

RegistryKey Key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", true);
Key.SetValue(Process.GetCurrentProcess().ProcessName + ".exe", RegVal, RegistryValueKind.DWord);
Key.Close();
 
Nahoru Odpovědět
17. října 10:28
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.