Problema com win_OleCreateObject

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Problema com win_OleCreateObject

Mensagem por rubens »

Boa tarde...

Estou tendo um problema não sei bem se da win_OleCreateObject(). A mesma rotina compilo com harbour e funcionar beleza, quando compilo com a Minigui não funciona.
chega a carregar a win_OleCreateObject() mas quando entra no segundo Try que tem o oShell:Run() não funciona. Pula essa parte do Try entrando no Catch.
Alguem sabe se não funciona com a Minigui, ou estou fazendo algo errado?

Compilado em harbour funciona

Código: Selecionar todos

#include 'hbcompat.ch'
#include "hbgtinfo.ch"
#include "hbwin.ch"

REQUEST HB_GT_WVT_DEFAULT

Function Main (cPdfFile, lEspera)
	LOCAL oShell, lOk:=.T., nStyle
	Local cPath := hb_dirbase()
  	HB_Default(@lEspera,.T.)
  	TRY
		oShell:=win_OleCreateObject( "WScript.Shell" )
  	CATCH
   	TRY
     		oShell:=win_OleCreateObject( "WScript.Shell" )
  		CATCH
     		lOk:=.F.
    	END
  	END
  	IF lOk
    	TRY
	     nStyle:=0
	     oShell:Run( cPATH+'sumatra\sumatrapdf.exe -print-to-default '+cPdfFile , nStyle, lEspera)
    	CATCH
     		lOk:=.F.
    	END
    	oShell:=Nil
  	ENDIF
RETURN lOk
Compilado na minigui como funcao não funciona, retorna .f.

Código: Selecionar todos

Function ImpPdf(cFilePdf, lEspera) 
	LOCAL oShell, lOk:=.T., nStyle
  	HB_Default(@lEspera,.T.)
  	TRY
		oShell:=win_OleCreateObject( "WScript.Shell" )
  	CATCH
   	TRY
     		oShell:=win_OleCreateObject( "WScript.Shell" )
  		CATCH
     		lOk:=.F.
    	END
  	END
  	IF lOk
    	TRY
	     nStyle:=0
	     oShell:Run( cPATH+'sumatra\sumatrapdf.exe -print-to-default '+cPdfFile , nStyle, lEspera)
	     MsgBox( 'Dentro do Run')
    	CATCH
     		lOk:=.F.
    	END
    	oShell:=Nil
  	ENDIF
RETURN lOk
Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Problema com win_OleCreateObject

Mensagem por JoséQuintas »

Acredite se quiser, o problema é sempre o Xharbour.

No seu fonte está acrescentando a lib de compatibilidade com Xharbour, já é um problema.
E se usar a função de OLE dentro dela, causa problemas de compatibilidade com win_OleCreateObject().
Fora isso, a minigui usa coisas pra Xharbour...

É por essa e outras que a LIB de compatibilidade com xHarbour está marcada pra ser excluída do Harbour 3.4.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Problema com win_OleCreateObject

Mensagem por Toledo »

Rubens, na Minigui não precisa criar o Shell com win_OleCreateObject(), você pode usar direto o comando EXECUTE FILE.

Exemplo:

Código: Selecionar todos

execute file 'arquivo.pdf'

ou

Execute file ( cPATH+'sumatra\sumatrapdf.exe -print-to-default '+cPdfFile ) Wait
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Problema com win_OleCreateObject

Mensagem por rubens »

Então o "Erro" não tinha nada a ver com a coitada da win_OleCreateObject()..
Era erro de BIOS mesmo...
Tava recebendo:
Function ImpPdf(cFilePdf, lEspera) -> cFilePdf
e mandando imprimir:
cPdfFile
aí ia para o CATCH mesmo..
foi só corrigir e funcionou...

Agora foi bom que não conhecia o EXECUTE FILE bem mais prático...

Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Responder