<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6120463970260905892</id><updated>2011-11-27T21:43:49.572-02:00</updated><category term='POST'/><category term='InternetExplorer.Application'/><category term='PostURL'/><category term='InternetResult Object'/><category term='C++ ODBC'/><category term='OLE'/><category term='Powerbuilder 7'/><title type='text'>rennerocha</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rennerocha.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6120463970260905892/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rennerocha.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>rennerocha</name><uri>http://www.blogger.com/profile/09576251804846976908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6120463970260905892.post-1194107559469853977</id><published>2007-11-22T11:26:00.006-02:00</published><updated>2008-02-27T11:02:25.259-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Powerbuilder 7'/><category scheme='http://www.blogger.com/atom/ns#' term='POST'/><category scheme='http://www.blogger.com/atom/ns#' term='PostURL'/><category scheme='http://www.blogger.com/atom/ns#' term='InternetResult Object'/><title type='text'>Fazer chamada POST através do PowerBuilder 7</title><content type='html'>Há ocasiões onde é necessário enviar um conjunto de informações (preenchidas em um formulário por exemplo) para algum serviço rodando em algum servidor remoto. Uma maneira de fazer isso, é enviar essas informações através do método POST. Normalmente isso é feito através de um formulário HTML armazenado em um servidor web, porém é possível que uma aplicação PowerBuilder envie informações (de uma datawindow por exemplo) da mesma maneira.&lt;br /&gt;&lt;br /&gt;No exemplo a seguir, o conteúdo de um formulário simples será enviado através do método POST para um script PHP armazenado em um servidor web. Este script apenas exibirá o conteúdo enviado pela nossa aplicação.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;O script PHP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Um script simples em PHP fará o papel do serviço que receberá a requisição POST vinda do PowerBuilder.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;testePOST.php&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;print_r($_POST); /* Exibe o conteúdo recebido via POST */&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;A aplicação PowerBuilder&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Em uma nova aplicação, crie uma &lt;span style="font-style: italic;"&gt;Standard Class&lt;/span&gt; do tipo &lt;span style="font-style: italic;"&gt;InternetResult&lt;/span&gt;. Este objeto manipulará as informações que nossa aplicação receberá do servidor. Salve esta classe com o nome &lt;span style="font-style: italic;"&gt;n_cst_internet&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_R_v37BnJxrg/R0Wn8dEuwsI/AAAAAAAAAAo/USoEmQ7UKUg/s1600-h/post.GIF"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_R_v37BnJxrg/R0Wn8dEuwsI/AAAAAAAAAAo/USoEmQ7UKUg/s320/post.GIF" alt="" id="BLOGGER_PHOTO_ID_5135695607124378306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Na função &lt;span style="font-style: italic;"&gt;InternetData(blob data)&lt;/span&gt; no objeto recém criado, coloque o seguinte código:&lt;br /&gt;&lt;blockquote&gt;// Irá exibir em uma MessageBox o conteúdo retornado pelo servidor&lt;br /&gt;// que recebeu o POST&lt;br /&gt;MessageBox("O script PHP retornou:", String(data))&lt;br /&gt;RETURN 0&lt;br /&gt;&lt;/blockquote&gt;Em seguida, crie uma nova janela com dois campos de texto (sle_nome e sle_email) e um botão (cb_enviar).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_R_v37BnJxrg/R8Vr85HpjII/AAAAAAAAAA4/PaS0cUwetKw/s1600-h/testepost.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_R_v37BnJxrg/R8Vr85HpjII/AAAAAAAAAA4/PaS0cUwetKw/s320/testepost.JPG" alt="" id="BLOGGER_PHOTO_ID_5171658440974109826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;No evento clicked do botão &lt;span style="font-weight: bold;"&gt;cb_enviar&lt;/span&gt;, temos o seguinte código:&lt;br /&gt;&lt;blockquote&gt;String httprequest, ls_header, ls_url, ls_headers&lt;br /&gt;Long ll_ret, ll_length&lt;br /&gt;Blob lblb_args&lt;br /&gt;Inet linet_main&lt;br /&gt;n_cst_internet luo_data&lt;br /&gt;&lt;br /&gt;linet_main = CREATE inet&lt;br /&gt;luo_data = CREATE n_cst_internet&lt;br /&gt;&lt;br /&gt;String nome&lt;br /&gt;nome = sle_nome.Text&lt;br /&gt;&lt;br /&gt;String email&lt;br /&gt;email = sle_email.Text&lt;br /&gt;&lt;br /&gt;ls_url = "http://www.meusite.com.br/testePOST.php"&lt;br /&gt;lblb_args = blob("nome=" + nome + "&amp;amp;email=" + email)&lt;br /&gt;ll_length = Len(lblb_args)&lt;br /&gt;ls_headers = "Content-Type: " + &amp;amp;&lt;br /&gt;      "application/x-www-form-urlencoded~n" + &amp;amp;&lt;br /&gt;      "Content-Length: " + String( ll_length ) + "~n~n"&lt;br /&gt;&lt;br /&gt;ll_ret = linet_main.PostURL(ls_url,lblb_args,ls_headers,luo_data)&lt;br /&gt;&lt;br /&gt;IF(ll_ret &lt;&gt; 1) THEN&lt;br /&gt;MessageBox("ERRO", "POST falhou (retorno: " + String(ll_ret))&lt;br /&gt;END IF&lt;/blockquote&gt;Rodando esta aplicação, receberemos o retorno do script PHP:&lt;br /&gt;&lt;br /&gt;&lt;img src="file:///C:/DOCUME%7E1/RENNE%7E1.ROC/CONFIG%7E1/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_R_v37BnJxrg/R8VtI5HpjKI/AAAAAAAAABI/pIlegJ3yCK8/s1600-h/testepost2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_R_v37BnJxrg/R8VtI5HpjKI/AAAAAAAAABI/pIlegJ3yCK8/s200/testepost2.jpg" alt="" id="BLOGGER_PHOTO_ID_5171659746644167842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Observação: A função PostURL (no PowerBuilder 7) não permite que enviemos informações para uma porta diferente da 80 (não é possível fazer uma chamada para uma página HTTPS configurada na porta 8080 por exemplo). Aparentemente, a partir do PowerBuilder 8 essa limitação foi eliminada (não cheguei a testar).&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6120463970260905892-1194107559469853977?l=rennerocha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rennerocha.blogspot.com/feeds/1194107559469853977/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6120463970260905892&amp;postID=1194107559469853977&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6120463970260905892/posts/default/1194107559469853977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6120463970260905892/posts/default/1194107559469853977'/><link rel='alternate' type='text/html' href='http://rennerocha.blogspot.com/2007/11/fazer-chamada-post-atravs-do.html' title='Fazer chamada POST através do PowerBuilder 7'/><author><name>rennerocha</name><uri>http://www.blogger.com/profile/09576251804846976908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_R_v37BnJxrg/R0Wn8dEuwsI/AAAAAAAAAAo/USoEmQ7UKUg/s72-c/post.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6120463970260905892.post-5312179775970315331</id><published>2007-10-15T14:34:00.000-02:00</published><updated>2007-10-15T15:47:01.909-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++ ODBC'/><title type='text'>Criando uma conexão ODBC utilizando C++</title><content type='html'>Ao escrever um código que efetua uma interação com um sistema de banco de dados, normalmente é necessário incluir trechos de código específicos do banco de dados utilizado. Se você quiser utilizar um banco de dados Sybase, Access ou PostgreSQL, será necessário a escrita de três códigos diferentes.&lt;br /&gt;&lt;br /&gt; Utilizando o ODBC (Open Data Base Connectivy), você fará chamadas a funções da API do ODBC (combinadas com queries SQL). O gerenciador ODBC saberá como executar a função desejada no banco de dados escolhido. É necessário apenas que você tenha instalado no seu computador, um driver ODBC específico do banco de dados que você estará utilizando.&lt;br /&gt;&lt;br /&gt; Existem implementações de ODBC para vários sistemas operacionais, porém vamos tratar aqui apenas da implementação da Microsoft (&lt;a href="http://msdn2.microsoft.com/en-us/library/ms710252.aspx"&gt;Microsoft Open Database Connectivity (ODBC)&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt; Os passos básicos para efetuar uma conexão a um base dados, efetuar um query e encerrar essa conexão podem ser vistos no fluxograma abaixo (fonte: &lt;a href="http://msdn2.microsoft.com/en-us/library/ms714078.aspx"&gt;Basic ODBC Application Steps&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_R_v37BnJxrg/RxOe5fPEIWI/AAAAAAAAAAU/9fqPjztkVlM/s1600-h/ms714078.904af006-3694-4f19-b318-dee91e5197fe%28en-us,VS.85%29.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_R_v37BnJxrg/RxOe5fPEIWI/AAAAAAAAAAU/9fqPjztkVlM/s200/ms714078.904af006-3694-4f19-b318-dee91e5197fe%28en-us,VS.85%29.gif" alt="" id="BLOGGER_PHOTO_ID_5121611911724802402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  Não vou explicar o funcionamento de cada uma dessas funções (pelo menos nesse post). Acredito que um pequeno exemplo de código em C++ possa ser muito mais didático para a utilização rápida.&lt;br /&gt;&lt;br /&gt;  Neste exemplo, uma conexão com uma fonte de dados ODBC é realizada e o conteúdo de dois campos é buscado e exibido na tela (caso haja algum registro).&lt;br /&gt;&lt;br /&gt;  &lt;span style="font-weight:bold;"&gt;Exemplo 1 - Selecionando campos de uma tabela&lt;/span&gt; - Compilado no Visual C++ 6.0&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;lt;iostream.h&amp;gt;&lt;br /&gt;#include &amp;lt;string.h&amp;gt;&lt;br /&gt;#include &amp;lt;sqlext.h&amp;gt;&lt;br /&gt;&lt;br /&gt;int main(int argc, char* argv[])&lt;br /&gt;{&lt;br /&gt;    UCHAR campo1[100];&lt;br /&gt;    UCHAR campo2[100];&lt;br /&gt;&lt;br /&gt;    // Query SQL que será executada&lt;br /&gt;    unsigned char szSqlStr[255];&lt;br /&gt;    strcpy((char*)szSqlStr, "SELECT campo1, campo2 FROM tabela WHERE condicao = '2'");&lt;br /&gt;&lt;br /&gt;    SDWORD cbCampo1; // Model buffer bytes recieved&lt;br /&gt;    SDWORD cbCampo2; // Model buffer bytes recieved&lt;br /&gt;&lt;br /&gt;    SQLRETURN retcode;&lt;br /&gt;    SQLHENV henv;  // Environment handle&lt;br /&gt;    SQLHDBC hdbc;  // Connection handle&lt;br /&gt;    SQLHSTMT hstmt;  // Statement handle&lt;br /&gt;&lt;br /&gt;    UCHAR szDSN[SQL_MAX_DSN_LENGTH] = "nome_fonte"; // Data Source Name buffer&lt;br /&gt;    UCHAR* szUID = (unsigned char *) "user_id"; // User ID buffer&lt;br /&gt;    UCHAR* szPasswd = (unsigned char *) "pass"; // Password buffer&lt;br /&gt;&lt;br /&gt;    // Alocando manipulador de ambiente&lt;br /&gt;    retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &amp;henv);&lt;br /&gt;&lt;br /&gt;    // Definir atributo de ambiente de versão do ODBC&lt;br /&gt;    retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); &lt;br /&gt; &lt;br /&gt;    // Alocando manipulador de conexão&lt;br /&gt;    retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &amp;hdbc); &lt;br /&gt;&lt;br /&gt;    // Conexão com a fonte de dados&lt;br /&gt;    retcode = SQLConnect(hdbc, szDSN, SQL_NTS, szUID, SQL_NTS, szPasswd, SQL_NTS); &lt;br /&gt;&lt;br /&gt;    // Alocando manipulador da query&lt;br /&gt;    retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &amp;hstmt); &lt;br /&gt;&lt;br /&gt;    // Executa a query&lt;br /&gt;    retcode = SQLExecDirect(hstmt, szSqlStr, SQL_NTS);&lt;br /&gt;    if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {&lt;br /&gt;        SQLBindCol (hstmt, 1, SQL_C_CHAR, campo1, sizeof(campo1), &amp;cbCampo1);&lt;br /&gt;        SQLBindCol (hstmt, 2, SQL_C_CHAR, campo2, sizeof(campo2), &amp;cbCampo2);&lt;br /&gt;        retcode = SQLFetch (hstmt);&lt;br /&gt;        if(retcode != SQL_NO_DATA_FOUND) {&lt;br /&gt;            // Se encontrou dados&lt;br /&gt;            cout &lt;&lt; "Campo 1: " &lt;&lt; campo1 &lt;&lt; endl;&lt;br /&gt;            cout &lt;&lt; "Campo 2: " &lt;&lt; campo2 &lt;&lt; endl;&lt;br /&gt;        } else {&lt;br /&gt;            cout &lt;&lt; "Nenhum registro encontrado";&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    // Libera manipulador da query&lt;br /&gt;    retcode = SQLFreeHandle(SQL_HANDLE_STMT, hstmt);&lt;br /&gt;&lt;br /&gt;    // Desconecta da fonte de dados&lt;br /&gt;    retcode = SQLDisconnect(hdbc);&lt;br /&gt;&lt;br /&gt;    // Libera manipuladorde conexão&lt;br /&gt;    retcode = SQLFreeHandle(SQL_HANDLE_DBC, hdbc);&lt;br /&gt;&lt;br /&gt;    // Libera manipulador de ambiente&lt;br /&gt;    retcode = SQLFreeHandle(SQL_HANDLE_ENV, henv);&lt;br /&gt;&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6120463970260905892-5312179775970315331?l=rennerocha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rennerocha.blogspot.com/feeds/5312179775970315331/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6120463970260905892&amp;postID=5312179775970315331&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6120463970260905892/posts/default/5312179775970315331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6120463970260905892/posts/default/5312179775970315331'/><link rel='alternate' type='text/html' href='http://rennerocha.blogspot.com/2007/10/criando-uma-conexo-odbc-utilizando-c.html' title='Criando uma conexão ODBC utilizando C++'/><author><name>rennerocha</name><uri>http://www.blogger.com/profile/09576251804846976908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_R_v37BnJxrg/RxOe5fPEIWI/AAAAAAAAAAU/9fqPjztkVlM/s72-c/ms714078.904af006-3694-4f19-b318-dee91e5197fe%28en-us,VS.85%29.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6120463970260905892.post-3547447625049546707</id><published>2007-09-21T16:15:00.000-03:00</published><updated>2007-11-22T11:19:06.814-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Powerbuilder 7'/><category scheme='http://www.blogger.com/atom/ns#' term='OLE'/><category scheme='http://www.blogger.com/atom/ns#' term='InternetExplorer.Application'/><title type='text'>Iniciando o Internet Explorer a partir do PowerBuilder</title><content type='html'>Esta semana tive que iniciar um projeto em que a principal funcionalidade seria executar, a partir de um botão em uma &lt;span style="font-style: italic;"&gt;window&lt;/span&gt;, o &lt;span style="font-style: italic;"&gt;Internet Explorer&lt;/span&gt; na máquina do cliente em uma determinada página. Pensei em usar inicialmente a função &lt;span style="font-weight: bold;"&gt;Run()&lt;/span&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;br /&gt;&lt;br /&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, um Arquiteto de Software me sugeriu utilizar um &lt;span style="font-style: italic;"&gt;objeto OLE&lt;/span&gt; para fazer essa tarefa.&lt;br /&gt;&lt;br /&gt;Fuçando no site do MSDN, descobri o objeto &lt;a href="http://msdn2.microsoft.com/en-us/library/aa752084.aspx"&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). Mais informações em &lt;a href="http://msdn2.microsoft.com/en-us/library/aa752084.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa752084.aspx&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Bom, no final fiz o seguinte código (utilizei o PowerBuilder 7) dentro do evento clicked() de um botão:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;OLEObject uo_ie&lt;br /&gt;uo_ie = CREATE OLEObject&lt;br /&gt;Integer ii_handleoleobject = -999&lt;br /&gt;&lt;br /&gt;ii_handleoleobject = uo_ie.ConnectToNewObject("InternetExplorer.Application")&lt;br /&gt;IF ii_handleoleobject &lt; 0 THEN&lt;br /&gt;   DESTROY uo_ie&lt;br /&gt;   MessageBox('Erro','Não foi ´possível criar o objeto OLE')&lt;br /&gt;ELSE&lt;br /&gt;   uo_ie.AddressBar = FALSE&lt;br /&gt;   uo_ie.MenuBar = FALSE&lt;br /&gt;   uo_ie.Resizable = FALSE&lt;br /&gt;   uo_ie.StatusBar = FALSE&lt;br /&gt;   uo_ie.ToolBar = FALSE&lt;br /&gt;   uo_ie.Visible = TRUE&lt;br /&gt;   uo_ie.Left = 200&lt;br /&gt;   uo_ie.Top = 200&lt;br /&gt;   uo_ie.Height = 500&lt;br /&gt;   uo_ie.Width = 500&lt;br /&gt;   uo_ie.Navigate(is_urlchamada)&lt;br /&gt;   SetForegroundWindow(uo_ie.HWND)&lt;br /&gt;END IF&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Declarando uma função externa (para que a janela recém-criada fique ativada):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;FUNCTION boolean SetForegroundWindow( long hWnd ) LIBRARY "USER32"&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6120463970260905892-3547447625049546707?l=rennerocha.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rennerocha.blogspot.com/feeds/3547447625049546707/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6120463970260905892&amp;postID=3547447625049546707&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6120463970260905892/posts/default/3547447625049546707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6120463970260905892/posts/default/3547447625049546707'/><link rel='alternate' type='text/html' href='http://rennerocha.blogspot.com/2007/09/esta-semana-tive-que-iniciar-um-projeto.html' title='Iniciando o Internet Explorer a partir do PowerBuilder'/><author><name>rennerocha</name><uri>http://www.blogger.com/profile/09576251804846976908</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
