From cf0bd127728c4b275ea1696fbf2c1a432655ce88 Mon Sep 17 00:00:00 2001 From: Eric Menezes Noronha Date: Wed, 2 Jul 2014 03:15:54 -0300 Subject: [PATCH] -Ajuste de execução do mapa pelo CacicService. --- CACIC_Library.pas | 42 +++++++++++++++++++++++++----------------- MapaTesteProj/MapaCACIC.identcache | Bin 1327 -> 0 bytes MapaTesteProj/MapaTeste.pas | 24 +++++++++++++++--------- cacic280.dproj | 2 +- cacic280.res | Bin 4872 -> 0 bytes cacicservice/CACICserviceMain.pas | 9 +++++++++ chksis/chksis.dproj | 2 +- chksis/chksis.res | Bin 5084 -> 0 bytes gercols/gercols.dpr | 11 +++++++++-- gercols/gercols.dproj | 2 +- gercols/gercols.res | Bin 4756 -> 0 bytes main.pas | 69 ++++++++++++++++++++++++++++++++++++--------------------------------- mapacacic/MapaCACIC.dpr | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ mapacacic/MapaCACIC.dproj | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ mapacacic/MapaCACIC.res | Bin 0 -> 5128 bytes 15 files changed, 208 insertions(+), 64 deletions(-) create mode 100644 mapacacic/MapaCACIC.dpr create mode 100644 mapacacic/MapaCACIC.dproj create mode 100644 mapacacic/MapaCACIC.res diff --git a/CACIC_Library.pas b/CACIC_Library.pas index 8890627..4361bf2 100755 --- a/CACIC_Library.pas +++ b/CACIC_Library.pas @@ -1238,24 +1238,32 @@ begin writeDebugLog('createOneProcess: pStrCmd => "' + pStrCmd + '"'); writeDebugLog('createOneProcess: pBoolWait => "' + getBoolToString(pBoolWait) + '"'); writeDebugLog('createOneProcess: ' + DupeString('*',100)); - Result := CreateProcess(nil, - PChar(pStrCmd), - nil, - nil, - false, - CREATE_NEW_CONSOLE or - BELOW_NORMAL_PRIORITY_CLASS, - nil, - nil, - SUInfo, - ProcInfo); - if (Result) then - begin - if(pBoolWait) then begin - WaitForSingleObject(ProcInfo.hProcess, INFINITE); - CloseHandle(ProcInfo.hProcess); - CloseHandle(ProcInfo.hThread); + try + Result := CreateProcess(nil, + PChar(pStrCmd), + nil, + nil, + false, + CREATE_NEW_CONSOLE or + BELOW_NORMAL_PRIORITY_CLASS, + nil, + nil, + SUInfo, + ProcInfo); + if (Result) then + begin + if(pBoolWait) then begin + WaitForSingleObject(ProcInfo.hProcess, INFINITE); + CloseHandle(ProcInfo.hProcess); + CloseHandle(ProcInfo.hThread); + end; end; + Except + on E : Exception do + begin + writeExceptionLog(E.Message,E.ClassName,'createOnePcrocces: Falha ao criar processo'); + end; + end; end; diff --git a/MapaTesteProj/MapaCACIC.identcache b/MapaTesteProj/MapaCACIC.identcache index 7c0e401..9131734 100644 Binary files a/MapaTesteProj/MapaCACIC.identcache and b/MapaTesteProj/MapaCACIC.identcache differ diff --git a/MapaTesteProj/MapaTeste.pas b/MapaTesteProj/MapaTeste.pas index 86dc107..c72808c 100644 --- a/MapaTesteProj/MapaTeste.pas +++ b/MapaTesteProj/MapaTeste.pas @@ -412,11 +412,7 @@ if edTeInfoPatrimonio5.text <> '' then btGravarInformacoes.Caption := 'Informações enviadas com sucesso...'; objCacic.setValueToFile('Collects','col_patr_last' , objCacic.enCrypt(strColetaAtual), strGerColsInfFileName); - if objCacic.getValueFromFile('Configs', 'modulo_patr', strGerColsInfFileName) = 'N' then - objCacic.setValueToFile('Configs','col_patr_exe', 'n', strGerColsInfFileName) - else - objCacic.setValueToFile('Configs','col_patr_exe', 's', strGerColsInfFileName); - + objCacic.setValueToFile('Configs','col_patr_exe', 's', strGerColsInfFileName); End; objCacic.writeDebugLog(#13#10 + 'AtualizaPatrimonio: Dados Enviados ao Servidor!'); @@ -665,13 +661,23 @@ begin if getConfigs <> '0' then begin - objCACIC.writeDailyLog('Iniciando formulário.'); - mapa; - FormSetFocus(foco) + if (objCACIC.getValueFromFile('Configs', + 'modulo_patr', + strGerColsInfFileName) = 'S') then + begin + objCACIC.writeDailyLog('Iniciando formulário.'); + mapa; + FormSetFocus(foco) + end + else + begin + objCACIC.writeDailyLog('Modulo desabilitado.'); + Finalizar; + end; end else begin - objCACIC.writeDailyLog('Falha!!!!.'); + objCACIC.writeDailyLog('Falha ao pegar informações!.'); Finalizar; end; end diff --git a/cacic280.dproj b/cacic280.dproj index 0f76b3a..7259f0a 100644 --- a/cacic280.dproj +++ b/cacic280.dproj @@ -40,7 +40,7 @@ Delphi.Personality VCLApplication -FalseTrueFalseTrueFalse2818FalseFalseFalseFalseFalse10461252Dataprev - Emp. de TI da Prev.Social - URES/SESSSistema CACIC - Módulo Agente Principal2.8.1.8Baseado na licença GNU/LGPLCacic - Configurador Automático e Coletor de Informações Computacionais3.0cacic280.dpr +FalseTrueFalseTrueFalse2819FalseFalseFalseFalseFalse10461252Dataprev - Emp. de TI da Prev.Social - URES/SESSSistema CACIC - Módulo Agente Principal2.8.1.9Baseado na licença GNU/LGPLCacic - Configurador Automático e Coletor de Informações Computacionais3.0cacic280.dpr diff --git a/cacic280.res b/cacic280.res index 38796f8..3a6c4cc 100644 Binary files a/cacic280.res and b/cacic280.res differ diff --git a/cacicservice/CACICserviceMain.pas b/cacicservice/CACICserviceMain.pas index 7c76448..d999ead 100755 --- a/cacicservice/CACICserviceMain.pas +++ b/cacicservice/CACICserviceMain.pas @@ -433,6 +433,15 @@ Begin else g_oCacic.writeDebugLog('ExecutaCACIC: Cookie Bloqueado pelo Agente Principal ENCONTRADO - CACIC em Execução!'); + // Execução do MAPA. + if ((g_oCacic.getValueFromFile('Configs', 'modulo_patr', + g_oCacic.getLocalFolderName + 'GerCols.inf') = 'S') and + (g_oCacic.getValueFromFile('Configs', 'col_patr_exe', + g_oCacic.getLocalFolderName + 'GerCols.inf') <> 's')) then + begin + g_oCacic.createOneProcess(g_oCacic.getLocalFolderName + 'Modules\mapacacic.exe',false,SW_NORMAL); + end; + g_oCacic.writeDebugLog('ExecutaCACIC: Verificando existência de nova versão deste serviço para atualização.'); // Verifico a existência de nova versão do serviço e finalizo em caso positivo... if (FileExists(g_oCacic.getLocalFolderName + 'Temp\cacicservice.exe')) and diff --git a/chksis/chksis.dproj b/chksis/chksis.dproj index b0784ba..97d3d29 100755 --- a/chksis/chksis.dproj +++ b/chksis/chksis.dproj @@ -29,7 +29,7 @@ Delphi.Personality VCLApplication -C:\Arquivos de programas\Borland\Delphi7\Mitec\D7FalseTrueFalseC:\Arquivos de programas\Borland\Delphi7\Bin\TrueFalse2817FalseFalseFalseFalseFalse10461252Dataprev - Emp. de TI da Prev.Social - URES/SESSSistema CACIC - Módulo Verificador de Integridade2.8.1.7ChkSIS3.0Licença: GNU/LGPLchksis.dpr +C:\Arquivos de programas\Borland\Delphi7\Mitec\D7FalseTrueFalseC:\Arquivos de programas\Borland\Delphi7\Bin\TrueFalse2818FalseFalseFalseFalseFalse10461252Dataprev - Emp. de TI da Prev.Social - URES/SESSSistema CACIC - Módulo Verificador de Integridade2.8.1.8ChkSIS3.0Licença: GNU/LGPLchksis.dpr diff --git a/chksis/chksis.res b/chksis/chksis.res index 6ba8940..a3d6c34 100755 Binary files a/chksis/chksis.res and b/chksis/chksis.res differ diff --git a/gercols/gercols.dpr b/gercols/gercols.dpr index 7fb7a9f..49e9234 100644 --- a/gercols/gercols.dpr +++ b/gercols/gercols.dpr @@ -223,7 +223,8 @@ End; procedure getConfigs(p_mensagem_log : boolean); var strRetorno, v_mensagem_log, - strKeyWord : string; + strKeyWord, + strForcaColeta : string; textfileKeyWord : TextFile; Begin Try @@ -243,10 +244,16 @@ Begin Begin objCacic.setBoolCipher(not objCacic.isInDebugMode); objCacic.setValueToFile('Configs','ConexaoOK','S', strGerColsInfFileName); + if (objCacic.getValueFromTags('WebManagerAddress', strRetorno,'<>') <> '') then Begin + strForcaColeta = objCacic.getValueFromTags('ForcaColeta', strRetorno, '<>'); +// if strForcaColeta <> 'S' then +// objCacic.setValueToFile('Configs','col_patr_exe', +// 'n', +// strGerColsInfFileName); objCacic.setValueToFile('Configs','forca_coleta', - objCacic.getValueFromTags('ForcaColeta', strRetorno, '<>'), + strForcaColeta, strGerColsInfFileName); objCacic.setValueToFile('Configs','WebManagerAddress' ,objCacic.getValueFromTags('WebManagerAddress' , strRetorno,'<>'), strChkSisInfFileName); objCacic.setValueToFile('Configs','WebServicesFolderName',objCacic.getValueFromTags('WebServicesFolderName', strRetorno,'<>'), strChkSisInfFileName); diff --git a/gercols/gercols.dproj b/gercols/gercols.dproj index fd5aedd..ffd9cd0 100644 --- a/gercols/gercols.dproj +++ b/gercols/gercols.dproj @@ -38,7 +38,7 @@ Delphi.Personality VCLApplication -C:\vendors_lib\JVCL345CompleteJCL231-Build4197\jcl\lib\d7\debugFalseTrueFalseTrueFalse2816FalseFalseFalseFalseFalse10461252Dataprev-Emp. de TI da Prev Social - URES/SESSSistema CACIC - Módulo Gerente de Coletas2.8.1.6Ger_COLS3.0Licença: GNU/LGPLgercols.dpr +C:\vendors_lib\JVCL345CompleteJCL231-Build4197\jcl\lib\d7\debugFalseTrueFalseTrueFalse2817FalseFalseFalseFalseFalse10461252Dataprev-Emp. de TI da Prev Social - URES/SESSSistema CACIC - Módulo Gerente de Coletas2.8.1.7Ger_COLS3.0Licença: GNU/LGPLgercols.dpr diff --git a/gercols/gercols.res b/gercols/gercols.res index d312bd0..c6a9079 100644 Binary files a/gercols/gercols.res and b/gercols/gercols.res differ diff --git a/main.pas b/main.pas index 8f53f72..059174f 100755 --- a/main.pas +++ b/main.pas @@ -807,32 +807,36 @@ Begin strFileSize := objCACIC.getFileSize(objCACIC.getLocalFolderName + 'Modules\mapacacic.exe',true); - Result := false; - - objCACIC.deleteFileOrFolder(objCACIC.getLocalFolderName + 'Modules\mapacacic.exe'); + if ((objCACIC.getFileHash(objCACIC.getLocalFolderName + 'Modules\mapacacic.exe') <> + objCACIC.getValueFromFile('Hash-Codes', 'MAPACACIC.EXE', strChksisInfFileName)) or + (strFileSize <= '0')) then + begin + Result := false; + objCACIC.deleteFileOrFolder(objCACIC.getLocalFolderName + 'Modules\mapacacic.exe'); - InicializaTray; + InicializaTray; - objCACIC.writeDailyLog('Acionando Recuperador de Mapa Cacic.'); - objCACIC.writeDebugLog('ChecaMAPACACIC: Acionando Recuperador de Módulo Gerente de Coletas: '+objCACIC.getWinDir + 'chksis.exe'); - objCACIC.createOneProcess(objCACIC.getWinDir + 'chksis.exe',false,SW_HIDE); + objCACIC.writeDailyLog('Acionando Recuperador de Mapa Cacic.'); + objCACIC.writeDebugLog('ChecaMAPACACIC: Acionando Recuperador de Módulo Gerente de Coletas: '+objCACIC.getWinDir + 'chksis.exe'); + objCACIC.createOneProcess(objCACIC.getWinDir + 'chksis.exe',false,SW_HIDE); - sleep(30000); // 30 segundos de espera para download do gercols.exe - objCacic.setBoolCipher(not objCacic.isInDebugMode); - strFileSize := objCACIC.getFileSize(objCACIC.getLocalFolderName + '\Modules\mapacacic.exe',true); - if not(strFileSize = '0') and not(strFileSize = '-1') then - Begin - objCACIC.writeDailyLog('Módulo Mapa Cacic RECUPERADO COM SUCESSO!'); - objCACIC.writeDebugLog('ChecaMAPACACIC: Módulo Gerente de Coletas RECUPERADO COM SUCESSO!'); - InicializaTray; - Result := True; - End - else - Begin - objCACIC.writeDailyLog('Módulo Mapa Cacic NÃO RECUPERADO!'); - objCACIC.writeDebugLog('ChecaMAPACACIC: Módulo Gerente de Coletas NÃO RECUPERADO!'); - End; - objCACIC.writeDebugLog('ChecaMAPACACIC: ' + DupeString('=',100)); + sleep(30000); // 30 segundos de espera para download do gercols.exe + objCacic.setBoolCipher(not objCacic.isInDebugMode); + strFileSize := objCACIC.getFileSize(objCACIC.getLocalFolderName + '\Modules\mapacacic.exe',true); + if not(strFileSize = '0') and not(strFileSize = '-1') then + Begin + objCACIC.writeDailyLog('Módulo Mapa Cacic RECUPERADO COM SUCESSO!'); + objCACIC.writeDebugLog('ChecaMAPACACIC: Módulo Gerente de Coletas RECUPERADO COM SUCESSO!'); + InicializaTray; + Result := True; + End + else + Begin + objCACIC.writeDailyLog('Módulo Mapa Cacic NÃO RECUPERADO!'); + objCACIC.writeDebugLog('ChecaMAPACACIC: Módulo Gerente de Coletas NÃO RECUPERADO!'); + End; + objCACIC.writeDebugLog('ChecaMAPACACIC: ' + DupeString('=',100)); + end; End; // Verifico a existência do Gerente de Coletas, caso não exista, o chksis.exe fará download! @@ -1282,16 +1286,15 @@ begin begin // Caso exista o Mapa Cacic será verificada a versão e excluída caso antiga(Uma forma de ação pró-ativa) if FileExists(objCACIC.getLocalFolderName + 'Modules\mapacacic.exe') then - Begin - ChecaCONFIGS; - - timerNuExecApos.Enabled := False; - objCacic.writeDailyLog('Invoca_MapaCacic: Criando processo mapa.'); - objCACIC.writeDebugLog('Invoca_MapaCacic: Criando Processo Mapa => "'+objCACIC.getLocalFolderName + 'Modules\MapaCACIC.exe'); - objCACIC.createOneProcess(objCACIC.getLocalFolderName + 'Modules\mapacacic.exe',false,SW_SHOW); - g_intStatus := 1; - objCacic.setBoolCipher(not objCacic.isInDebugMode); - End + Begin + objCacic.writeDailyLog('Invoca_MapaCacic: Criando processo mapa.'); + objCACIC.writeDebugLog('Invoca_MapaCacic: Criando Processo Mapa => "'+objCACIC.getLocalFolderName + 'Modules\MapaCACIC.exe'); + sleep(10000); //Pausa para dar tempo de realizar o login na máquina, senão o usuário fica em branco. + if (objCACIC.createOneProcess(objCACIC.getLocalFolderName + 'Modules\mapacacic.exe',false,SW_NORMAL)) then + objCacic.writeDailyLog('Invoca_MapaCacic: Processo criado.') + else + objCacic.writeDailyLog('Invoca_MapaCacic: Falha ao criar processo.'); + End else objCACIC.writeDailyLog('Não foi possível invocar o Mapa Cacic!'); End; diff --git a/mapacacic/MapaCACIC.dpr b/mapacacic/MapaCACIC.dpr new file mode 100644 index 0000000..3582899 --- /dev/null +++ b/mapacacic/MapaCACIC.dpr @@ -0,0 +1,58 @@ +(** +--------------------------------------------------------------------------------------------------------------------------------------------------------------- +Copyright 2000, 2001, 2002, 2003, 2004, 2005 Dataprev - Empresa de Tecnologia e Informações da Previdência Social, Brasil + +Este arquivo é parte do programa CACIC - Configurador Automático e Coletor de Informações Computacionais + +O CACIC é um software livre; você pode redistribui-lo e/ou modifica-lo dentro dos termos da Licença Pública Geral GNU como +publicada pela Fundação do Software Livre (FSF); na versão 2 da Licença, ou (na sua opinião) qualquer versão. + +Este programa é distribuido na esperança que possa ser util, mas SEM NENHUMA GARANTIA; sem uma garantia implicita de ADEQUAÇÂO a qualquer +MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU para maiores detalhes. + +Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título "LICENCA.txt", junto com este programa, se não, escreva para a Fundação do Software +Livre(FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +--------------------------------------------------------------------------------------------------------------------------------------------------------------- +*) + +program MapaCACIC; + +uses + Forms, + Windows, + uMainMapa in 'uMainMapa.pas' {frmMapaCacic}, + uAcessoMapa in 'uAcessoMapa.pas' {frmAcesso}, + CACIC_Library in '..\CACIC_Library.pas', + CACIC_Comm in '..\CACIC_Comm.pas'; + +{$R *.res} + +const APP_NAME = 'MapaCacic.exe'; + +var hwind:HWND; + oCacic : TCACIC; + +begin + oCacic := TCACIC.Create(); + + if( oCacic.isAppRunning( APP_NAME ) ) + then begin + hwind := 0; + repeat // The string 'My app' must match your App Title (below) + hwind:=Windows.FindWindowEx(0,hwind,'TApplication', APP_NAME ); + until (hwind<>Application.Handle); + IF (hwind<>0) then + begin + Windows.ShowWindow(hwind,SW_SHOWNORMAL); + Windows.SetForegroundWindow(hwind); + end; + FreeMemory(0); + end + else + begin + Application.Initialize; + Application.CreateForm(TfrmMapaCacic, frmMapaCacic); + Application.Run; + end; + oCacic.Free(); +end. diff --git a/mapacacic/MapaCACIC.dproj b/mapacacic/MapaCACIC.dproj new file mode 100644 index 0000000..159735b --- /dev/null +++ b/mapacacic/MapaCACIC.dproj @@ -0,0 +1,53 @@ + + + + {bd12cdd9-2bb5-4ae7-9da9-8d9f09bab843} + MapaCACIC.dpr + Release + AnyCPU + DCC32 + ..\..\Agentes_Windows_BINARIOS\MapaCACIC.exe + + + 7.0 + False + False + False + 0 + C:\devel\cacic\Agentes_Windows_BINARIOS + DEBUG + + + 7.0 + False + False + False + 0 + C:\devel\cacic\Agentes_Windows_BINARIOS + C:\vendors_lib;C:\vendors_lib\MD5;C:\agentes_Windows;C:\vendors_lib\CriptografiaDCP;C:\vendors_lib\PJVersion;C:\vendors_lib\MagWMI;C:\devel\cacic\agente-windows + C:\vendors_lib;C:\vendors_lib\MD5;C:\agentes_Windows;C:\vendors_lib\CriptografiaDCP;C:\vendors_lib\PJVersion;C:\vendors_lib\MagWMI;C:\devel\cacic\agente-windows + C:\vendors_lib;C:\vendors_lib\MD5;C:\agentes_Windows;C:\vendors_lib\CriptografiaDCP;C:\vendors_lib\PJVersion;C:\vendors_lib\MagWMI;C:\devel\cacic\agente-windows + C:\vendors_lib;C:\vendors_lib\MD5;C:\agentes_Windows;C:\vendors_lib\CriptografiaDCP;C:\vendors_lib\PJVersion;C:\vendors_lib\MagWMI;C:\devel\cacic\agente-windows + DEBUG + + + Delphi.Personality + VCLApplication + +FalseTrueFalseC:\Arquivos de programas\Borland\Delphi7\Bin\TrueFalse2813FalseFalseFalseFalseFalse10461252Dataprev - Emp. de TI da Prev.Social - URES/SESSSistema CACIC - Módulo Avulso para Coleta de Informações Patrimoniais2.8.1.3MapaCACIC3.0Licença: GNU/LGPLMapaCACIC.dpr + + + + + MainSource + + + + +
frmAcesso
+
+ +
frmMapaCacic
+
+
+
\ No newline at end of file diff --git a/mapacacic/MapaCACIC.res b/mapacacic/MapaCACIC.res new file mode 100644 index 0000000..f70fa8d Binary files /dev/null and b/mapacacic/MapaCACIC.res differ -- libgit2 0.21.2