Comando para minimizar tela com xHarbour

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

Moderador: Moderadores

porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Comando para minimizar tela com xHarbour

Mensagem por porter »

olá pessoal,
Gostaria de saber se pelo xHarbour, tem algum comando para minimizar o sistema, estou querendo minimizar,
porque quando executo o NFe_ImprimirDANFE() dentro do código, aparece a tela da Nota Danfe, mas uma parte da tela do sistema fica na tela. Pesquisando, encontrei algumas soluções com FiveWin, MiniGui, mas com xHarbour não.

xHarbour.
obrigado.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Comando para minimizar tela com xHarbour

Mensagem por Jairo Maia »

Olá Porter,

Não conheço um comando que minimiza o sistema, mas é possível desabilitar o Preview desmarcando essa opção na aba Impressão do ACBr.

Caso realmente queira exibir o Preview, vamos aguardar alguma dica sobre minimizar o aplicativo.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Comando para minimizar tela com xHarbour

Mensagem por fladimir »

Código: Selecionar todos

				oWnd := x_GETFOREGROUNDWINDOW()
				x_SwitchToThisWindow(oWnd,.f.)
				x_showWindow( oWnd, 6 ) // minimiza	

Funções em C...
Se for compilar no mesmo PRG tem q fazer #pragma BEGINDUMP antes do código e no final.. #pragma ENDDUMP
Ou pode criar um arquivo com extenção .C e ai não precisa do #pragma... etc

Compila junto e testa.

Código: Selecionar todos

#include "windows.h"
#include "hbapi.h"

HB_FUNC( x_GETFOREGROUNDWINDOW )
{
 HWND hwnd;
 hwnd = GetForegroundWindow();
 hb_retnl( (LONG) hwnd );
}

HB_FUNC( x_SWITCHTOTHISWINDOW )
{
 HWND hWnd;
 hWnd = (HWND) hb_parnl(1);
 hb_retl(SetForegroundWindow(hWnd));
}

HB_FUNC( x_SHOWWINDOW )
{
 hb_retl( ShowWindow(
 (HWND) hb_parnl(1), hb_parni(2) ));
}
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Comando para minimizar tela com xHarbour

Mensagem por porter »

olá Fladimir, estou colocando os comandos abaixo, dentro do prg, está dando erro de compilação:
Declaration Syntax error nessa linha:

oWnd := x_GETFOREGROUNDWINDOW() <--- DECLARATION SYNTAX ERROR

Código: Selecionar todos

#pragma BEGINDUMP
   #include "windows.h"
   #include "hbapi.h"
   HB_FUNC( x_GETFOREGROUNDWINDOW )
   {
    HWND hwnd;
    hwnd = GetForegroundWindow();
    hb_retnl( (LONG) hwnd );
   }
	 
   HB_FUNC( x_SWITCHTOTHISWINDOW )
   {
    HWND hWnd;
    hWnd = (HWND) hb_parnl(1);
    hb_retl(SetForegroundWindow(hWnd));
   }
	 
   HB_FUNC( x_SHOWWINDOW )
   {
    hb_retl( ShowWindow(
    (HWND) hb_parnl(1), hb_parni(2) ));
   }		 
#pragma ENDDUMP	 

Código: Selecionar todos

PROCEDURE MINIMIZA
   #pragma BEGINDUMP
      oWnd := x_GETFOREGROUNDWINDOW()   <--- DECLARATION SYNTAX ERROR
      x_SwitchToThisWindow(oWnd,.f.)
      x_showWindow( oWnd, 6 ) // minimiza 
   #pragma ENDDUMP	 
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Comando para minimizar tela com xHarbour

Mensagem por fladimir »

na tua função minimiza retire o #pragma inicio e final

o #pgrama só deve envolver o código C propriamente dito
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

Comando para minimizar tela com xHarbour

Mensagem por porter »

olá Fladimir, bom dia,
Se tirar o #pragrma inicial e final, da erro de compilação:

Error: Unresolved external '_HB_FUN_X_GETFOREGROUNDWINDOW' referenced from C:\ESTOQUE\GERANFE.OBJ
Error: Unresolved external '_HB_FUN_X_SWITCHTOTHISWINDOW' referenced from C:\ESTOQUE\GERANFE.OBJ
Error: Unresolved external '_HB_FUN_X_SHOWWINDOW' referenced from C:\ESTOQUE\GERANFE.OBJ

xHarbour
obrigado.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Comando para minimizar tela com xHarbour

Mensagem por fladimir »

Código: Selecionar todos

func Main()

	minimiza()
	
return


function MINIMIZA()
   oWnd := X_GETFOREGROUNDWINDOW()
   X_SwitchToThisWindow(oWnd,.f.)
   X_showWindow( oWnd, 6 ) // minimiza 
return


//----------------- Fun‡äes em C --------//
#pragma BEGINDUMP

	#include "windows.h"
	#include "hbapi.h"
	
	#define ISNIL( n )   HB_ISNIL( n )
	#define ISNUM( n )   HB_ISNUM( n )
	
	VOID SY_SwitchToThisWindow( HWND hWnd, BOOL fAltTab );
	HB_FUNC( SY_FINDCONSOLEHANDLE ) //FindConsoleHandle
	{
	 HWND hwnd;
	 AllocConsole();
	  hwnd = FindWindowA("ConsoleWindowClass",NULL);
	 hb_retnl( (LONG) hwnd );
	}
	
	
	
	HB_FUNC( X_GETFOREGROUNDWINDOW )
	{
	 HWND hwnd;
	 hwnd = GetForegroundWindow();
	 hb_retnl( (LONG) hwnd );
	}
	
	
	HB_FUNC( X_SHOWWINDOW )
	{
	 hb_retl( ShowWindow(
	 (HWND) hb_parnl(1), hb_parni(2) ));
	}
	
	
	
	HB_FUNC( X_SWITCHTOTHISWINDOW )
	{
	 HWND hWnd;
	 hWnd = (HWND) hb_parnl(1);
	 hb_retl(SetForegroundWindow(hWnd));
	}

#pragma ENDDUMP


Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Responder