Código: Selecionar todos
#include "minigui.ch"
Function Main ()
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 320 ;
HEIGHT 240 ;
TITLE "Janela sempre visível" ;
MAIN ;
TOPMOST ;
NOMINIMIZE NOMAXIMIZE NOSIZE;
ON INTERACTIVECLOSE NAO_SAI();
ON LOSTFOCUS NAO_PERDE_FOCO()
@ 10,10 TEXTBOX Text_1 VALUE ""
DEFINE BUTTON Button_1
ROW 148
COL 140
CAPTION '&Sair'
WIDTH 74
HEIGHT 23
ACTION ThisWindow.Release
FONTNAME 'MS Sans Serif'
FONTSIZE 9
END BUTTON
END WINDOW
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
Return Nil
Function NAO_SAI()
PlayAsterisk()
// MsgInfo("Não pode sair clicando no X")
Return .F.
Function NAO_PERDE_FOCO()
PlayAsterisk()
hWnd := FindWindow( "Janela sempre visível" )
Minimize( hWnd )
IF hWnd > 0
IF IsIconic( hWnd )
Restore( hWnd )
ELSE
SetForeGroundWindow( hWnd )
ENDIF
ENDIF
SetCursorPos( 15+Form_1.Col+GetBorderWidth(), 20+Form_1.Row+GetTitleHeight()+GetBorderHeight() )
PressMouse(.t.)
Return .F.
#pragma BEGINDUMP
#define HB_OS_WIN_USED
#define _WIN32_WINNT 0x0400
#include <windows.h>
#include "hbapi.h"
#include "hbapiitm.h"
HB_FUNC( ISICONIC )
{
hb_retl( IsIconic( ( HWND ) hb_parnl( 1 ) ) );
}
HB_FUNC ( FINDWINDOW )
{
hb_retnl( ( LONG ) FindWindow( 0, hb_parc( 1 ) ) );
}
HB_FUNC( PRESSMOUSE )
/*
Simula pressionamento dos botäes do mouse:
.T. - Esquerdo
.F. - Direito
*/
{
if ( hb_parl(1) )
{
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) ;
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) ;
}
else
{
mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0) ;
mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0) ;
}
}
#pragma ENDDUMPFiz uma jogada um tanto pouco ortodoxa... rsrsrs mas que deu um resultado bem parecido. Posicionei o cursor e simulei um click dentro da janela quando for clicado fora da janela. Experimente e me diga.



