Como o Jairo Maia disse que resolveu acho que o tópico esta quase finalizado, mas vou dar mais uma pequena dica que uso em um aplicativozinho que monitora as vendas nos terminais e quando elas são finalizadas um aviso sonoro e uma pequena telinha, quase parecida com a do Outlook 2007 avisa a maquina no caixa que tem pedido para ser impresso.
Somente um pequeno trecho e não será funcional pois usa funções do Fivewin, mas a idéia dá pra captar e implementar.
Código: Selecionar todos
static oWnd
function Main()
DEFINE WINDOW oWnd TITLE "Botao Iniciar"
DEFINE BUTTONBAR oBar _3D OF oWnd
...
DEFINE BUTTON OF oBar ACTION Pisca_EXE()
DEFINE BUTTON OF oBar ACTION BallonMSG( "Mensagem Nova Chegou", 4 )
ACTIVATE WINDOW oWnd
return nil
Function BallonMSG(cBallonMsg,nBallonTime)
local oDlgBallon, oBrush
default cBallonMsg := "Nova mensagem chegando..."
DEFINE WINDOW oDlgBallon ;
FROM GetSysMetrics(1),GetSysMetrics(0)-300 TO 200,200 PIXEL ;
COLOR nRGB(255,255,255),nRGB(250,250,250) NO CAPTION BORDER NONE
@ 5, 5 GET cBallonMsg MEMO OF oDlgBallon SIZE 195,195 PIXEL COLOR nRGB(000,000,000),nRGB(250,250,250) NOBORDER NO MODIFY NO VSCROLL
ACTIVATE WINDOW oDlgBallon ON INIT MoveDLG(oDlgBallon,nBallonTime)
return nil
Function MoveDLG(oDlgBallon,oDlgTime)
oDlgAltura := GetSysMetrics(1)
//SndPlaySound( cPath + "\pnsrv.wav", 0 )
for i = 1 to 20
oDlgAltura := oDlgAltura - i
oDlgBallon:Move( oDlgAltura, 100, 200, 200, .t. )
SysWait(.02)
next
SysWait(oDlgTime)
for i = 1 to 20
oDlgAltura := oDlgAltura + i
oDlgBallon:Move( oDlgAltura, 100, 200, 200, .t. )
SysWait(.02)
next
oDlgBallon:end()
return
As funções GetSysMetrics(1) e GetSysMetrics(0) devolvem altura e largura da tela conforme sua resolução, portanto bastará usarem alguma função parecida.
O laço for i = 1 to 20 move a janela 20 pixels para cima e depois para baixo.
A janela oWnd é a principal, que pode ficar minimizada ou escondida e a oDlgBallon é a janela que irá aparecer e desaparecer na frente do usuário.


