#include "StdAfx.h" #include "ClienteLicencias.h" #include "DescargaVersion.h" #include "DialogKey.h" #include "ClientLic.h" #include "DialogError.h" #include "licencia.h" #include "DescargadorFiles.h" #include "utl.h" #include "DialogProgreso.h" #include "dir_manager.h" #include "_log.h" #include "LicCliente.h" ClienteLicencias::ClienteLicencias(void) { dias_pregun = 5; dirLic[0]=0; dirTemp[0]=0; } ClienteLicencias::~ClienteLicencias(void) { } void ClienteLicencias::muestaError( char* info, char* producto ) { ClientLic_dll dll; DialogError dialog; dialog.errorSt = info; dialog.produc = producto; dialog.DoModal(); return; } bool ClienteLicencias::getClave( char* clave, char* producto ) { ClientLic_dll dll; DialogKey dialog; strcpy(dialog.producto,producto); dialog.DoModal(); strcpy(clave, dialog.clave); return true; } bool ClienteLicencias::descargaInstalador( Licencia *lic ) { ClientLic_dll dll; if(!preguntarDescarga()) return true; DescargaVersion dialog; dialog.producActu = lic->nombre_producto; dialog.verActu = lic->version_producto; dialog.producNew = lic->nombre_producto; dialog.verNew = lic->instaVersion; dialog.desc = lic->instaDescrip; dialog.DoModal(); if(dialog.descarga) descargaVersion(lic); return true; } void ClienteLicencias::descargaVersion( Licencia *lic) { DescargadorFiles cli; StrArray buf; Cutl::stringSplit(lic->instaServer,":",&buf); cli.setServer(buf.get(0), atoi(buf.get(1)), lic->instaKey,lic->instaUsu); buf.n_i=buf.n_str =0; buf.add(lic->instaPath); DialogProgreso prog; dprog = &prog; char name[128]; sprintf(prog.dirProgram,"%s%s",dirTemp,Cdir_manager::nombre_archivo(lic->instaPath,name)); prog.espera = &espera_dlg; prog.cancelar = &cancelaDescarga; cancelaDescarga = false; espera_dlg = true; cli.iniciaDescarga(&buf,dirTemp,this); prog.DoModal(); } void ClienteLicencias::setStatus( double porcen ) { porcen = porcen; while(espera_dlg) Sleep(10); dprog->SendMessage(WMS_STATUS,(WPARAM) &porcen); } void ClienteLicencias::finTransfer( bool finalFeliz ) { if(finalFeliz) porcen = 100; else porcen = false; while(espera_dlg) Sleep(10); dprog->SendMessage(WMS_STATUS,(WPARAM) &porcen); dprog->SendMessage(WMS_FIN,(WPARAM) finalFeliz); } bool ClienteLicencias::cancelTransfer() { return cancelaDescarga; } bool ClienteLicencias::preguntarDescarga() { char str[256]; //revisa archivo--------------- bool res = true; if(!dirLic[0]) strcpy(str, "acceso.bin"); else sprintf(str,"%s%s",dirLic, "acceso.bin"); Cb_file f; __int64 t = CTime::GetCurrentTime().GetTime(); if(f.abre(str,3)) { __int64 tult=0; f.lee(&tult, sizeof(__int64)); f.cierra(); res = (tult+(dias_pregun*86400))