<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Powerbuilder on Renne Rocha</title>
    <link>https://rennerocha.com/tags/powerbuilder/</link>
    <description>Recent content in Powerbuilder on Renne Rocha</description>
    <generator>Hugo</generator>
    <language>en</language>
    
      <managingEditor>blog@rocha.dev.br (Renne Rocha)</managingEditor>
    
    
      <webMaster>blog@rocha.dev.br (Renne Rocha)</webMaster>
    
    
    
      <lastBuildDate>Fri, 21 Sep 2007 00:00:00 +0000</lastBuildDate>
    
      <atom:link href="https://rennerocha.com/tags/powerbuilder/index.xml" rel="self" type="application/rss+xml" />
      <item>
        <title>Iniciando o Internet Explorer a partir do PowerBuilder</title>
        <link>https://rennerocha.com/posts/iniciando-ie-com-powerbuilder/</link>
        <pubDate>Fri, 21 Sep 2007 00:00:00 +0000</pubDate><author>blog@rocha.dev.br (Renne Rocha)</author>
        <guid>https://rennerocha.com/posts/iniciando-ie-com-powerbuilder/</guid>
        <description>&lt;p&gt;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 &lt;code&gt;Run()&lt;/code&gt;, 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)&lt;/p&gt;&#xA;&lt;p&gt;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.&lt;/p&gt;&#xA;&lt;p&gt;Pesquisando no site do MSDN, descobri o objeto &lt;a href=&#34;https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa752084(v=vs.85)?redirectedfrom=MSDN&#34;&gt;InternetExplorer&lt;/a&gt; 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).&lt;/p&gt;&#xA;&lt;p&gt;Bom, no final fiz o seguinte código (utilizei o PowerBuilder 7) dentro do evento &lt;code&gt;clicked()&lt;/code&gt; de um botão:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;OLEObject uo_ie&#xA;uo_ie = CREATE OLEObject&#xA;Integer ii_handleoleobject = -999&#xA;&#xA;ii_handleoleobject = uo_ie.ConnectToNewObject(&amp;#34;InternetExplorer.Application&amp;#34;)&#xA;IF ii_handleoleobject &amp;lt; 0 THEN&#xA;   DESTROY uo_ie&#xA;   MessageBox(&amp;#39;Erro&amp;#39;,&amp;#39;Não foi ´possível criar o objeto OLE&amp;#39;)&#xA;ELSE&#xA;   uo_ie.AddressBar = FALSE&#xA;   uo_ie.MenuBar = FALSE&#xA;   uo_ie.Resizable = FALSE&#xA;   uo_ie.StatusBar = FALSE&#xA;   uo_ie.ToolBar = FALSE&#xA;   uo_ie.Visible = TRUE&#xA;   uo_ie.Left = 200&#xA;   uo_ie.Top = 200&#xA;   uo_ie.Height = 500&#xA;   uo_ie.Width = 500&#xA;   uo_ie.Navigate(is_urlchamada)&#xA;   SetForegroundWindow(uo_ie.HWND)&#xA;END IF&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Declarando uma função externa (para que a janela recém-criada fique ativada):&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;FUNCTION boolean SetForegroundWindow( long hWnd ) LIBRARY &amp;#34;USER32&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
      </item>
  </channel>
</rss>