MINHA PRIMEIRA DECEP?ÃP COM WEBBROWSER ?
Bom dia,colegas!
Embora não utilize com frequencia, sempre considerei o controle WebBrowser
um ótimo objeto do Toolbox, no Visual Studio. Quando precisei visualizar qualquer
endereço da internet sempre exibiu corretamente. Mas...
O caso:
Tenho o endereço de um site de uma empresa parceira nossa, que disponibiliza um
serviço simples na internet de consulta.Quando este endereço é colocado em qualquer
navegador ( Internet Explorer,Crome,Firofox,etc... ) , é exibido sem problemas.
No entanto , agora preciso exibir este mesmo site dentro de um controle WebBrowse,
em uma aplicação VB.NET.
O problema:
Quando solicito que o WebBrowser exiba o site, surge a mensagem de erro que adicionei em anexo (Erro de mensagem1).
Se respondo quer seja sim ou não, para a mensagem , surge uma segunda mensagem de erro dizendo que
[Ô]Nao foi possivel Obter a propiedade SetOptions[Ô]
Obs: Apaguei de propósito o endereço de URL da mensagem de erro , pois o gerente de TI nao me autorizou postar, por ser de uso interno.
Agradeço qualquer orientação dos colegas,
Embora não utilize com frequencia, sempre considerei o controle WebBrowser
um ótimo objeto do Toolbox, no Visual Studio. Quando precisei visualizar qualquer
endereço da internet sempre exibiu corretamente. Mas...
O caso:
Tenho o endereço de um site de uma empresa parceira nossa, que disponibiliza um
serviço simples na internet de consulta.Quando este endereço é colocado em qualquer
navegador ( Internet Explorer,Crome,Firofox,etc... ) , é exibido sem problemas.
No entanto , agora preciso exibir este mesmo site dentro de um controle WebBrowse,
em uma aplicação VB.NET.
O problema:
Quando solicito que o WebBrowser exiba o site, surge a mensagem de erro que adicionei em anexo (Erro de mensagem1).
Se respondo quer seja sim ou não, para a mensagem , surge uma segunda mensagem de erro dizendo que
[Ô]Nao foi possivel Obter a propiedade SetOptions[Ô]
Obs: Apaguei de propósito o endereço de URL da mensagem de erro , pois o gerente de TI nao me autorizou postar, por ser de uso interno.
Agradeço qualquer orientação dos colegas,
click em cima do webbrowser vai em ScriptErrorSupressed = TRUE Mais como sempre o KerpLuck diz procure saber se este site tem uma WEBApi para ser consumida..
O controle WebBrowser por padrão usa o modo de compatibilidade do IE7 independente da versão do IE instalado, e isso geralmente causa problemas para abrir sites, pois pode parecer meio ilógico pensar isso mas este controle não foi feito para ser usado como um web browser, pelo menos não no que se diz respeito a acessar a internet.
O principal motivo deste controle existir é para permitir criar aplicações web embarcadas ou programas desktop que usam interfaces feitas em HTML, e como mudar a versão do IE poderia criar problemas nestes programas o controle fixa por padrão que ele usa o modo de compatibilidade com o IE7.
Existe como mudar isso mas só com uma configuração pelo registro do Windows
Basicamente você deve ir na chave do registro
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
E dentro dela criar um novo valor do tipo DWORD de 32 bits, o nome do valor deve ser o nome do arquivo executável e o valor deve ser a versão do IE que quer que ele use em decimal da forma 9000 para IE9, 10000 para IE10, 11000 para IE11 por exemplo.
Só lembrando que quando você executa por dentro do VS.Net o nome do executável geralmente é diferente do que é usado quando você compila o projeto, por exemplo se o seu executável se chama [Ô]SeuPrograma.exe[Ô], quando executado pelo VS ele deve usar um executável chamado [Ô]SeuPrograma.vshost.exe[Ô]
O principal motivo deste controle existir é para permitir criar aplicações web embarcadas ou programas desktop que usam interfaces feitas em HTML, e como mudar a versão do IE poderia criar problemas nestes programas o controle fixa por padrão que ele usa o modo de compatibilidade com o IE7.
Existe como mudar isso mas só com uma configuração pelo registro do Windows
Basicamente você deve ir na chave do registro
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
E dentro dela criar um novo valor do tipo DWORD de 32 bits, o nome do valor deve ser o nome do arquivo executável e o valor deve ser a versão do IE que quer que ele use em decimal da forma 9000 para IE9, 10000 para IE10, 11000 para IE11 por exemplo.
Só lembrando que quando você executa por dentro do VS.Net o nome do executável geralmente é diferente do que é usado quando você compila o projeto, por exemplo se o seu executável se chama [Ô]SeuPrograma.exe[Ô], quando executado pelo VS ele deve usar um executável chamado [Ô]SeuPrograma.vshost.exe[Ô]
O WebBrowser, é um controle indicado para outro tipo de situação do que esta de [Ô]ler dados[Ô] de uma página Web. Para isso, o melhor é a classe HttpClient. Como falar isso e não falar é a mesma coisa, porque a maioria precisa de código fonte para entender, então vai de anexo um pequeno exemplo para mostrar como é feito. Ele busca dados do VBMania, usando o HttpClient para isso e usando também as classes HttpComponent.
Kerplunk,o exemplo que você mostra em anexo é muito interessante.
Mas,mostra como acessar um endereço e manipular seus elementos
internos. No meu caso, o que preciso é :
[Ô]Exibir um endereço Url em um formulário WinForm [Ô]
Eu sempre usei nestes casos, o WebBrowser. Mas, conforme citei acima esta apresentando problemas para exibir.
Algum colega, sabe como usar o HttpCliente ( Sugerido pelo colega,Kerplunk) , para simplesmente exibir um endereço URL
em um formulário WinForm?????
Agradeço qualquer ajuda
Mas,mostra como acessar um endereço e manipular seus elementos
internos. No meu caso, o que preciso é :
[Ô]Exibir um endereço Url em um formulário WinForm [Ô]
Eu sempre usei nestes casos, o WebBrowser. Mas, conforme citei acima esta apresentando problemas para exibir.
Algum colega, sabe como usar o HttpCliente ( Sugerido pelo colega,Kerplunk) , para simplesmente exibir um endereço URL
em um formulário WinForm?????
Agradeço qualquer ajuda
Tipo, exibir a página como um browser faria? Se for isso, eu prefiro o usar o GeckoFx. é basicamente a engine do Firefox então é muito melhor que o Internet Explorer em termos de desempenho e compatibilidade.
Tópico encerrado , respostas não são mais permitidas