---
title: "Iniciando o Internet Explorer a partir do PowerBuilder"
publishdate: 2007-09-21
tags: ["powerbuilder"]
slug: iniciando-ie-com-powerbuilder
---

Esta semana tive que iniciar um projeto em que a principal funcionalidade seria executar a partir de um botão em uma window o Internet Explorer na máquina do cliente, abrindo uma determinada URL. Pensei em usar inicialmente a função `Run()`, porém uma das limitações do projeto era que a janela do navegador não poderia ter nenhuma barra de ferramentas disponível (endereço, status, favoritos, etc)

Como não é possível iniciar o IE em linha de comando com parâmetros para ocultar essas barras de ferramentas tive que procurar outra solução. Pesquisando dentro da empresa, me sugeriram utilizar um objeto OLE para fazer essa tarefa.

Pesquisando no site do MSDN, descobri o objeto [InternetExplorer](https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa752084(v=vs.85)?redirectedfrom=MSDN) que permite trabalhar com uma instância do IE. Você pode configurar diversas propriedades desse objeto (como exibição das barras de ferramentas, tamanho da janela, etc).

Bom, no final fiz o seguinte código (utilizei o PowerBuilder 7) dentro do evento `clicked()` de um botão:

```
OLEObject uo_ie
uo_ie = CREATE OLEObject
Integer ii_handleoleobject = -999

ii_handleoleobject = uo_ie.ConnectToNewObject("InternetExplorer.Application")
IF ii_handleoleobject < 0 THEN
   DESTROY uo_ie
   MessageBox('Erro','Não foi ´possível criar o objeto OLE')
ELSE
   uo_ie.AddressBar = FALSE
   uo_ie.MenuBar = FALSE
   uo_ie.Resizable = FALSE
   uo_ie.StatusBar = FALSE
   uo_ie.ToolBar = FALSE
   uo_ie.Visible = TRUE
   uo_ie.Left = 200
   uo_ie.Top = 200
   uo_ie.Height = 500
   uo_ie.Width = 500
   uo_ie.Navigate(is_urlchamada)
   SetForegroundWindow(uo_ie.HWND)
END IF
```

Declarando uma função externa (para que a janela recém-criada fique ativada):

```
FUNCTION boolean SetForegroundWindow( long hWnd ) LIBRARY "USER32"
```
