#xtranslate cFileCaptcha => GetEnv( "USERPROFILE" ) + "\Downloads\captcha.jpg"
static Function Captcha()
Local oDlg, oFont
Local oImage, oSay, oGet, oBtn1, oBtn2
Local cCode := Space(10)
Local lExit := .F.
Local hBmp1 := BMPYES()
Local hBmp2 := BMPREFRESH()
DownloadImageCaptcha()
DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-12 BOLD
DEFINE DIALOG oDlg FROM 0, 0 TO 10.5, 40;
TITLE "CAPTCHA";
FONT oFont;
STYLE nOr( WS_POPUP,DS_MODALFRAME,WS_CAPTION,WS_VISIBLE )
@ 1, 1 XIMAGE oImage SIZE 60, 18 OF oDlg
@ 2.5, 4 SAY oSay PROMPT "CODIGO :" SIZE 30, 10
@ 3.0, 8 GET oGet VAR cCode SIZE 60, 10
@ 60, 50 BTNBMP oBtn1 SIZE 70, 15 OF oDlg;
2007;
PROMPT "F3 = Acepta";
LEFT;
ACTION ( lExit := .T., oDlg:End() )
@ 14, 75 BTNBMP oBtn2 SIZE 70, 15 OF oDlg;
2007;
PROMPT "F2 = Refresca";
LEFT;
ACTION ( DownloadImageCaptcha(),;
oImage:SetSource( cFileCaptcha ) )
oBtn1:bPainted = {|hDC| DrawBitmap( hDC, hBmp1, 0, 0 )}
oBtn2:bPainted = {|hDC| DrawBitmap( hDC, hBmp2, 0, 0 )}
oDlg:bKeydown = {|nKey| KeyDownCaptcha(oBtn1, oBtn2, nKey)}
oDlg:lhelpIcon = .F.
ACTIVATE DIALOG oDlg;
ON INIT ( oImage:SetSource( cFileCaptcha ) );
VALID lExit;
CENTER
DeleteObject( hBmp1 )
DeleteObject( hBmp2 )
Return AllTrim(cCode)
//------------------------------------------//
static Function KeyDownCaptcha( oBtn1, oBtn2, nKey )
if nKey == VK_F2
Eval(oBtn2:bAction)
elseif nKey == VK_F3
Eval(oBtn1:bAction)
endif
Return Nil
//------------------------------------------//
static Function DownloadImageCaptcha()
Local cUrl := "http://contribuyente.seniat.gob.ve/BuscaRif/Captcha.jpg"
URLDOWNLOADTOFILE( 0, cUrl, cFileCaptcha )
Return NIL
//------------------------------------------//
DLL FUNCTION URLDOWNLOADTOFILE( pCaller AS LONG,;
cUrl AS LPSTR,;
cFileName AS LPSTR,;
nReserved AS DWORD,;
nFnCB AS LONG );
AS LONG PASCAL;
FROM "URLDownloadToFileA" LIB "urlmon.dll"