Página 1 de 1

Abrir Excel maximizado

Enviado: 24 Mai 2016 16:42
por rubens
Olá...

Consegui abrir o excel pelo harbour mas ele fica minimizado na barra de tarefas..
Tem algum comando que posso usar para maximiza-lo ao abrir?

Código para abrir:

Código: Selecionar todos

	oExcel := TOleAuto():New( "Excel.Application" )
	IF  oExcel == nil
		Alert('Excel no está instalado!','Error')
	ELSE	
		oWorkBook := oExcel:WorkBooks:Open( cArqXls )
		oExcel:DisplayAlerts := .F. 
		oEXcel:Visible := .T.
	ENDIF
Outra coisa como ele foi instanciado
oExcel := TOleAuto():New( "Excel.Application" )

mas não foi finalizado
oExcel:Quit()

pode dar algum problema com o windows?

Obrigado
Rubens

Abrir Excel maximizado

Enviado: 24 Mai 2016 18:23
por alxsts
Olá!

Teste o código abaixo:

Código: Selecionar todos

   #define xlMaximized -4137         //***********
   
   LOCAL oExcel AS Object
   LOCAL oWorkBook AS Object
 
   oExcel := TOleAuto():New( "Excel.Application" )
   IF  oExcel == nil
      Alert('Excel no está instalado!','Error')
   ELSE   
      oWorkBook := oExcel:WorkBooks:Open( cArqXls )
      oExcel:DisplayAlerts := .F.   
      oExcel:Visible := .T.          //***********
      
      oExcel:WindowState := xlMaximized
   ENDIF

   oExcel:Quit()   
É sempre recomendável fechar a aplicação após finalizar o uso.

Abrir Excel maximizado

Enviado: 25 Mai 2016 09:04
por rubens
Bom dia...
Alxsts,

Resolveu em parte... talvez eu tenha me expressado mau. Na realidade quando abrir o excel gostaria que ele ficasse em foco e sobreposse o meu programa. Ele tá abrindo maximizado mas não em foco. Achei que algum método da classe executasse essa função. Ele abre o excel na barra e pisca umas tres vezes.
Pelo que percebi para o excel fica em foco vai ter que usar uma função para isso. Me lembro de um tópico sobre isso, vou pesquisar.

Agora quando uso o método: oExcel:Quit() ele já fecha o excel também, automático, então não dá para usar o oExcel:Quit()

Obrigado
Rubens

Abrir Excel maximizado

Enviado: 25 Mai 2016 15:03
por alxsts
Olá!

Talvez o código abaixo resolva:

Código: Selecionar todos

	...
	   hIE := FindWindow( 0, "Excel" )
	   lCaptured := ( hIE > 0 )
	   IF lCaptured
	      SetActiveWindow( hIE )
	   ELSE
	      MsgStop( "Excel inativo. ative-o" )
	   ENDIF
	...
Extraído do tópico Execução de comandos e programas externos, por Rochinha.