IExplore fica aberto nos processos do Windows

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
billy1943
Usuário Nível 4
Usuário Nível 4
Mensagens: 570
Registrado em: 12 Mai 2009 17:33
Localização: Bauru-SP

IExplore fica aberto nos processos do Windows

Mensagem por billy1943 »

Eu usei um dos exemplos do XHarbour (Mapa) onde é feita a procura pelo Maps.Google de um roteiro entre duas cidades, e o coloquei em um sistema em Clipper.

Nele eu uso uma chamada simples, tipo "run mapa.exe".

Tudo funciona legal, na primeira vez que a rotina é executada.
Ocorre que o IExplore fica aberto nos processos do Windows e nova chamada de roteiro fica travada.
Para quem puder informar o que devo acrescentar tanto no Clipper ou no XHarbour, para que, após a utilização, o IE seja fechado, segue o fonte do exemplo utilizado.

Código: Selecionar todos

#include "inkey.ch"

***************
FUNCTION MAIN()
***************
   local oMapa, mde_uf, mpara_uf, mde_cid, mpara_cid, mde_rua, mpara_rua, mweb

   setmode(25,80)
   setcolor( 'N/W,N/GR*,,,N/W*' )
   cls

   while .T.
      mde_uf  := mpara_uf  := space(20)
      mde_cid := mpara_cid := space(40)
      mde_rua := mpara_rua := space(50)

      @ 05, 01 say "DE :"
      @ 07, 01 say "Estado ..:" get mde_uf  picture "@!"
      @ 08, 01 say "Cidade ..:" get mde_cid picture "@!"
      @ 09, 01 say "Endereco :" get mde_rua picture "@!"
      @ 11, 01 say "PARA :"
      @ 13, 01 say "Estado ..:" get mpara_uf  picture "@!"
      @ 14, 01 say "Cidade ..:" get mpara_cid picture "@!"
      @ 15, 01 say "Endereco :" get mpara_rua picture "@!"
      read
      if lastkey() == K_ESC
         exit
      endif
      mde_uf  := alltrim( mde_uf ) ; mpara_uf  := alltrim( mpara_uf )
      mde_cid := alltrim( mde_cid ); mpara_cid := alltrim( mpara_cid )
      mde_rua := alltrim( mde_rua ); mpara_rua := alltrim( mpara_rua )

      try
         oMapa := GetActiveObject( "InternetExplorer.Application" )
      catch
         try
            oMapa := CreateObject( "InternetExplorer.Application" )
         catch
            Alert( "ERRO ! Internet Explorer nao disponivel")
            return
         end
      end
      mweb := "http://maps.google.com/maps?q=de "               +;
              mde_rua + " " + mde_cid + " " + mde_uf + " para " +;
              mpara_rua + " " + mpara_cid + " " + mpara_uf

      oMapa:Visible := .T.
      oMapa:Navigate( mweb )
   enddo
RETURN
O bom do computador é que ele resolve os problemas, sem nunca levantar nenhum.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
athayde
Colaborador
Colaborador
Mensagens: 166
Registrado em: 14 Fev 2007 16:54

IExplore fica aberto nos processos do Windows

Mensagem por athayde »

da um

Código: Selecionar todos

oMapa:Quit
depois do enddo

[]s
Fernando
projeto hbNFe NFe para [x]Harbour venha fazer parte do time http://www.pctoledo.com.br/forum/viewforum.php?f=54
Harbour 3.2 + Hwgui (HBIDE)
Avatar do usuário
billy1943
Usuário Nível 4
Usuário Nível 4
Mensagens: 570
Registrado em: 12 Mai 2009 17:33
Localização: Bauru-SP

IExplore fica aberto nos processos do Windows

Mensagem por billy1943 »

Oi, Fernando

Acho que a minha Internet é que estava segurando o IE em aberto.

Mas aproveito sua participação e outros que viram o meu tópico, sobre utilização de programas do XHarbour no Clipper, para perguntar-lhes o seguinte:

- no exemplo de mapa, em Xharbour/Contrib/Hwgui/Exemplos_Hwgui/Mapa/Demo.prg, exposto abaixo, já com minhas alterações, tentei passar como parametros os dados de clientes (UF, Cidade, Rua e Número), mas ele ignora tais dados e pede a digitação dos mesmos.

O que está faltando ?

Em negrito, está a parte que eu modifiquei, para a inclusão de um ponto de partida único e o tratamento dos parametros de destino

Código: Selecionar todos

#define x_BLUE       16711680
#define x_DARKBLUE   10027008
#define x_WHITE      16777215
#define x_CYAN       16776960
#define x_BLACK             0
#define x_RED             255
#define x_GREEN         32768
#define x_GRAY        8421504
#define x_YELLOW        65535
#define HB_EXT_INKEY

#include "windows.ch"
#include "guilib.ch"
#include "inkey.ch"
#include "hwgui.ch"
#include "common.ch"
#include "hbdll.ch"

**************
Function main([b]cUf,cCidade,cNum,cRua[/b])
*************
PRIVATE oJanela
PRIVATE oFont, grpConfiguracao
**********variaveis***********************
PRIVATE LRUADE , LNUMDE, LCIDDE, LUFDE
PRIVATE LRUAPA , LNUMPA, LCIDPA, LUFPA

PRIVATE oRUADE , oNUMDE, oCIDDE, oUFDE
PRIVATE oRUAPA , oNUMPA, oCIDPA, oUFPA, aItens := {"SP","AC","AL","AP","AM","BA","CE","DF","GO","ES","MA","MT","MS","MG","PA","PB","PR","PE","PI","RJ","RN","RS","RO","RR","SC","SE","TO"}

PRIVATE wRUADE := [b]"R. Bento Cosci"   [/b]                  //SPACE(50)
PRIVATE wNUMDE := SPACE(5)
PRIVATE wCIDDE :=[b] "Bauru"   [/b]                               //SPACE(50)
PRIVATE wUFDE  := [b]"SP" [/b]                                      // SPACE(2)

[b]if pcount() > 0
   PRIVATE wruapa := CRua
   PRIVATE wnumpa := cNum
   PRIVATE wcidpa := cCidade
   PRIVATE wufpa  := cUF[/b]
else  
   PRIVATE wRUAPA := SPACE(50)
   PRIVATE wNUMPA := SPACE(5)
   PRIVATE wCIDPA := SPACE(50)
   PRIVATE wUFPA  := SPACE(2)
endif

IF Inetestaconectada()=.F.
   MsgStop("Para Usar Essa opção você deve ter conexão com a Internet,Favor Vereficar sua conexão com a Internet.","Aviso do Sistema")
   Return
Endif

PREPARE FONT oFontBtn NAME "Arial" WIDTH 0 HEIGHT -12 charset 255
INIT DIALOG oJanela CLIPPER NOEXIT TITLE "Rotas Rodoviarias/Localizador";
FONT oFontBtn;
AT 0,0 SIZE 610,320;
STYLE DS_CENTER + WS_VISIBLE + WS_CAPTION + WS_SYSMENU

SetColorinFocus( .t. )

@ 5,5   GROUPBOX grpConfiguracao           CAPTION "Local de Sa¡da"             SIZE 600,100
@ 5,130 GROUPBOX grpConfiguracao           CAPTION "Local de Destino"           SIZE 600,100
*******SAYS*******
@ 20 ,40   SAY LRUADE                      CAPTION "Rua......:"                 SIZE 168,22
@ 405,40   SAY LNUMDE                      CAPTION "Nº.:"                       SIZE  68,22
@ 20 ,70   SAY LCIDDE                      CAPTION "Cidade.:"                   SIZE 168,22
@ 405,70   SAY LUFDE                       CAPTION "UF.:"                       SIZE  68,22

@ 20 ,160  SAY LRUAPA                      CAPTION "Rua......:"                 SIZE 168,22
@ 405,160  SAY LNUMPA                      CAPTION "Nº.:"                       SIZE  68,22
@ 20 ,190  SAY LCIDPA                      CAPTION "Cidade.:"                   SIZE 168,22
@ 405,190  SAY LUFPA                       CAPTION "UF.:"                       SIZE  68,22
*******SAYS*******

*******GETS*******
@ 80,40   GET ORUADE     VAR wRUADE        PICTURE "@!"                         SIZE 320,22;
STYLE WS_TABSTOP + ES_AUTOHSCROLL;
TOOLTIP "Informe o Endereço de Sa¡da"

@ 430,40  GET ONUMDE     VAR wNUMDE        PICTURE "@!"                         SIZE  60,22;
STYLE WS_TABSTOP + ES_AUTOHSCROLL;
TOOLTIP "Informe o Numero do Endereço de Sa¡da"

@ 80,70   GET OCIDDE     VAR wCIDDE        PICTURE "@!"                         SIZE 250,22;
STYLE WS_TABSTOP + ES_AUTOHSCROLL;
TOOLTIP "Informe a Cidade de Sa¡da"

@ 430,70  GET COMBOBOX oUFDE VAR wUFDE     ITEMS aItens                         SIZE 50,22 TEXT;
STYLE WS_TABSTOP + ES_AUTOHSCROLL;
TOOLTIP "Informe a UF de Sa¡da"

@ 80,160  GET ORUAPA     VAR wRUAPA        PICTURE "@!"                         SIZE 320,22;
STYLE WS_TABSTOP + ES_AUTOHSCROLL;
TOOLTIP "Informe o Endereço do Destino - Ex: R. TAL ou AV. TAL"

@ 430,160 GET ONUMPA     VAR wNUMPA        PICTURE "@!"                         SIZE  60,22;
STYLE WS_TABSTOP + ES_AUTOHSCROLL;
TOOLTIP "Informe o Numero do Endereço do Destino - Opcional"

@ 80,190  GET OCIDPA     VAR wCIDPA        PICTURE "@!"                         SIZE 250,22;
STYLE WS_TABSTOP + ES_AUTOHSCROLL;
TOOLTIP "Informe a Cidade do Destino"

@ 430,190 GET COMBOBOX oUFPA VAR wUFPA     ITEMS aItens                         SIZE 50,22 TEXT;
STYLE WS_TABSTOP + ES_AUTOHSCROLL;
TOOLTIP "Informe a UF do Destino"
*******GETS*******

*******Buttons****
@ 10,240 BUTTON btnOk CAPTION "&Iniciar Busca" SIZE 150, 28 ;
TOOLTIP "Realizar Busca da Rota";
ON CLICK {|| Inicia_Busca_IE() };
STYLE WS_TABSTOP

@ 200,240  BUTTON "&Fechar" SIZE 100, 28 ;
TOOLTIP "Sair do M¢dulo e Voltar aos Menus";
ON CLICK {|| oJanela:Close() };
STYLE WS_TABSTOP
*******Buttons****

ACTIVATE DIALOG oJanela

RETURN nil

************************
Function Inicia_Busca_IE
************************
local oMapa, mweb

IF EMPTY(wRUADE)
   OBRIGA()
   oRUADE:SETFOCUS()
   RETURN
ENDIF

IF EMPTY(wNUMDE)
   OBRIGA()
   oNUMDE:SETFOCUS()
   RETURN
ENDIF

IF EMPTY(wCIDDE)
   OBRIGA()
   oCIDDE:SETFOCUS()
   RETURN
ENDIF

IF EMPTY(wUFDE)
   OBRIGA()
   oUFDE:SETFOCUS()
   RETURN
ENDIF

IF EMPTY(wRUAPA)
   OBRIGA()
   oRUAPA:SETFOCUS()
   RETURN
ENDIF

IF EMPTY(wNUMPA)
   OBRIGA()
   oNUMPA:SETFOCUS()
  RETURN
ENDIF

IF EMPTY(wCIDPA)
   OBRIGA()
   oCIDPA:SETFOCUS()
   RETURN
ENDIF

IF EMPTY(wUFPA)
   OBRIGA()
   oUFPA:SETFOCUS()
   RETURN
ENDIF

wRUADE  := alltrim( wRUADE )
wNUMDE  := alltrim( wNUMDE )
wCIDDE  := alltrim( wCIDDE )
wUFDE   := alltrim( wUFDE  )

wRUAPA  := alltrim( wRUAPA )
wNUMPA  := alltrim( wNUMPA )
wCIDPA  := alltrim( wCIDPA )
wUFPA   := alltrim( wUFPA  )

try
   oMapa := GetActiveObject( "InternetExplorer.Application" )
catch
   try
      oMapa := CreateObject( "InternetExplorer.Application" )
   catch
      MsgStop("ERRO ! Internet Explorer não disponivel","Aviso do Sistema")
      return
   end
end

mweb := "http://maps.google.com/maps?q=de "               +;
        wRUADE + " " + wNUMDE + " " + wCIDDE + " " + wUFDE + " para " +;
        wRUAPA + " " + wNUMPA + " " + wCIDPA + " " + wUFPA

oMapa:Visible := .T.
oMapa:Navigate( mweb )
oJanela:Close()
RETURN

Function OBRIGA
MsgINFO("OBRIGATORIO !!! Preencher este campo ou (ESC) para sair","Aviso do Sistema")
Return

**************************************
Function inetestaconectada( cAddress )
**************************************
LOCAL aHosts
LOCAL cName
InetInit()
IF cAddress == NIL
   cAddress := "www.google.com.br"
ENDIF
aHosts := InetGetHosts( cAddress )
IF aHosts == NIL .or. len(aHosts)=0
   InetCleanup()
   RETURN .f.
endif
InetCleanup()
RETURN .t.
O bom do computador é que ele resolve os problemas, sem nunca levantar nenhum.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
Responder