Commit c52c6d6f1d935a9293aa44ff1147e51d4770f99e

Authored by anderson.peterle@previdencia.gov.br
1 parent 4d566bb7
Exists in master

Reuso de codigos da library generica, pequenas correcoes e faxina de codigo.

git-svn-id: http://svn.softwarepublico.gov.br/svn/cacic/cacic/trunk/agente-windows@775 fecfc0c7-e812-0410-ae72-849f08638ee7
CACIC_Library.pas
@@ -132,17 +132,20 @@ type @@ -132,17 +132,20 @@ type
132 protected 132 protected
133 /// Mantem o caminho físico de instalação do agente cacic 133 /// Mantem o caminho físico de instalação do agente cacic
134 g_cacic_path: string; 134 g_cacic_path: string;
  135 + g_boolCipher : boolean;
135 136
136 public 137 public
137 Windows : TCACIC_Windows; /// objeto de informacoes de windows 138 Windows : TCACIC_Windows; /// objeto de informacoes de windows
138 Debug : TCACIC_Debug; /// objeto de tratamento de debug 139 Debug : TCACIC_Debug; /// objeto de tratamento de debug
139 procedure setCacicPath(p_cacic_path: string); 140 procedure setCacicPath(p_cacic_path: string);
  141 + procedure setBoolCipher(p_boolCipher : boolean);
140 function deCrypt(p_Data : String) : String; 142 function deCrypt(p_Data : String) : String;
141 function enCrypt(p_Data : String) : String; 143 function enCrypt(p_Data : String) : String;
142 function explode(p_String, p_Separador : String) : TStrings; 144 function explode(p_String, p_Separador : String) : TStrings;
143 function implode(p_Array : TStrings ; p_Separador : String) : String; 145 function implode(p_Array : TStrings ; p_Separador : String) : String;
144 function getCacicPath() : String; 146 function getCacicPath() : String;
145 function getCipherKey() : String; 147 function getCipherKey() : String;
  148 + function getBoolCipher() : boolean;
146 function getIV() : String; 149 function getIV() : String;
147 function getKeySize() : integer; 150 function getKeySize() : integer;
148 function getBlockSize() : integer; 151 function getBlockSize() : integer;
@@ -307,6 +310,26 @@ begin @@ -307,6 +310,26 @@ begin
307 end; 310 end;
308 311
309 {*------------------------------------------------------------------------------ 312 {*------------------------------------------------------------------------------
  313 + Atribui valor booleano à variável indicadora do status da criptografia
  314 +
  315 + @param p_boolCipher Valor booleano para atribuição à variável para status da
  316 + criptografia.
  317 +-------------------------------------------------------------------------------}
  318 +procedure TCACIC.setBoolCipher(p_boolCipher : boolean);
  319 +Begin
  320 + Self.g_boolCipher := p_boolCipher;
  321 +End;
  322 +{*------------------------------------------------------------------------------
  323 + Obtém o status da criptografia (TRUE -> Ligada / FALSE -> Desligada)
  324 +
  325 + @return boolean contendo o status para a criptografia
  326 +-------------------------------------------------------------------------------}
  327 +function TCACIC.getBoolCipher() : boolean;
  328 +Begin
  329 + Result := Self.g_boolCipher;
  330 +End;
  331 +
  332 +{*------------------------------------------------------------------------------
310 Atribui o caminho físico de instalação do agente cacic 333 Atribui o caminho físico de instalação do agente cacic
311 334
312 @param p_cacic_path Caminho físico de instalação do agente cacic 335 @param p_cacic_path Caminho físico de instalação do agente cacic
@@ -756,29 +779,35 @@ var @@ -756,29 +779,35 @@ var
756 l_Data, l_Key, l_IV : string; 779 l_Data, l_Key, l_IV : string;
757 begin 780 begin
758 Try 781 Try
759 - // Pad Key, IV and Data with zeros as appropriate  
760 - l_Key := PadWithZeros(CACIC_CIPHERKEY,CACIC_KEYSIZE);  
761 - l_IV := PadWithZeros(CACIC_IV,CACIC_BLOCKSIZE);  
762 - l_Data := PadWithZeros(p_Data,CACIC_BLOCKSIZE);  
763 -  
764 - // Create the cipher and initialise according to the key length  
765 - l_Cipher := TDCP_rijndael.Create(nil);  
766 - if Length(CACIC_CIPHERKEY) <= 16 then  
767 - l_Cipher.Init(l_Key[1],128,@l_IV[1])  
768 - else if Length(CACIC_CIPHERKEY) <= 24 then  
769 - l_Cipher.Init(l_Key[1],192,@l_IV[1])  
770 - else  
771 - l_Cipher.Init(l_Key[1],256,@l_IV[1]);  
772 -  
773 - // Encrypt the data  
774 - l_Cipher.EncryptCBC(l_Data[1],l_Data[1],Length(l_Data));  
775 -  
776 - // Free the cipher and clear sensitive information  
777 - l_Cipher.Free;  
778 - FillChar(l_Key[1],Length(l_Key),0);  
779 -  
780 - // Return the Base64 encoded result  
781 - Result := Base64EncodeStr(l_Data); 782 + if self.g_boolCipher then
  783 + Begin
  784 + // Pad Key, IV and Data with zeros as appropriate
  785 + l_Key := PadWithZeros(CACIC_CIPHERKEY,CACIC_KEYSIZE);
  786 + l_IV := PadWithZeros(CACIC_IV,CACIC_BLOCKSIZE);
  787 + l_Data := PadWithZeros(p_Data,CACIC_BLOCKSIZE);
  788 +
  789 + // Create the cipher and initialise according to the key length
  790 + l_Cipher := TDCP_rijndael.Create(nil);
  791 + if Length(CACIC_CIPHERKEY) <= 16 then
  792 + l_Cipher.Init(l_Key[1],128,@l_IV[1])
  793 + else if Length(CACIC_CIPHERKEY) <= 24 then
  794 + l_Cipher.Init(l_Key[1],192,@l_IV[1])
  795 + else
  796 + l_Cipher.Init(l_Key[1],256,@l_IV[1]);
  797 +
  798 + // Encrypt the data
  799 + l_Cipher.EncryptCBC(l_Data[1],l_Data[1],Length(l_Data));
  800 +
  801 + // Free the cipher and clear sensitive information
  802 + l_Cipher.Free;
  803 + FillChar(l_Key[1],Length(l_Key),0);
  804 +
  805 + // Return the Base64 encoded result
  806 + Result := Base64EncodeStr(l_Data);
  807 + End
  808 + Else
  809 + // Return the original value
  810 + Result := p_Data;
782 Except 811 Except
783 // LogDiario('Erro no Processo de Criptografia'); 812 // LogDiario('Erro no Processo de Criptografia');
784 End; 813 End;
@@ -790,31 +819,37 @@ var @@ -790,31 +819,37 @@ var
790 l_Data, l_Key, l_IV : string; 819 l_Data, l_Key, l_IV : string;
791 begin 820 begin
792 Try 821 Try
793 - // Pad Key and IV with zeros as appropriate  
794 - l_Key := PadWithZeros(CACIC_CIPHERKEY,CACIC_KEYSIZE);  
795 - l_IV := PadWithZeros(CACIC_IV,CACIC_BLOCKSIZE);  
796 -  
797 - // Decode the Base64 encoded string  
798 - l_Data := Base64DecodeStr(p_Data);  
799 -  
800 - // Create the cipher and initialise according to the key length  
801 - l_Cipher := TDCP_rijndael.Create(nil);  
802 - if Length(CACIC_CIPHERKEY) <= 16 then  
803 - l_Cipher.Init(l_Key[1],128,@l_IV[1])  
804 - else if Length(CACIC_CIPHERKEY) <= 24 then  
805 - l_Cipher.Init(l_Key[1],192,@l_IV[1])  
806 - else  
807 - l_Cipher.Init(l_Key[1],256,@l_IV[1]);  
808 -  
809 - // Decrypt the data  
810 - l_Cipher.DecryptCBC(l_Data[1],l_Data[1],Length(l_Data));  
811 -  
812 - // Free the cipher and clear sensitive information  
813 - l_Cipher.Free;  
814 - FillChar(l_Key[1],Length(l_Key),0);  
815 -  
816 - // Return the result  
817 - Result := l_Data; 822 + if self.g_boolCipher then
  823 + Begin
  824 + // Pad Key and IV with zeros as appropriate
  825 + l_Key := PadWithZeros(CACIC_CIPHERKEY,CACIC_KEYSIZE);
  826 + l_IV := PadWithZeros(CACIC_IV,CACIC_BLOCKSIZE);
  827 +
  828 + // Decode the Base64 encoded string
  829 + l_Data := Base64DecodeStr(p_Data);
  830 +
  831 + // Create the cipher and initialise according to the key length
  832 + l_Cipher := TDCP_rijndael.Create(nil);
  833 + if Length(CACIC_CIPHERKEY) <= 16 then
  834 + l_Cipher.Init(l_Key[1],128,@l_IV[1])
  835 + else if Length(CACIC_CIPHERKEY) <= 24 then
  836 + l_Cipher.Init(l_Key[1],192,@l_IV[1])
  837 + else
  838 + l_Cipher.Init(l_Key[1],256,@l_IV[1]);
  839 +
  840 + // Decrypt the data
  841 + l_Cipher.DecryptCBC(l_Data[1],l_Data[1],Length(l_Data));
  842 +
  843 + // Free the cipher and clear sensitive information
  844 + l_Cipher.Free;
  845 + FillChar(l_Key[1],Length(l_Key),0);
  846 +
  847 + // Return the result (unCrypted)
  848 + Result := l_Data
  849 + End
  850 + Else
  851 + // Return the original value
  852 + Result := p_Data
818 Except 853 Except
819 // LogDiario('Erro no Processo de Decriptografia'); 854 // LogDiario('Erro no Processo de Decriptografia');
820 End; 855 End;
@@ -20,7 +20,6 @@ program cacic2; @@ -20,7 +20,6 @@ program cacic2;
20 uses 20 uses
21 Forms, 21 Forms,
22 Windows, 22 Windows,
23 - Dialogs,  
24 main in 'main.pas' {FormularioGeral}, 23 main in 'main.pas' {FormularioGeral},
25 frmSenha in 'frmsenha.pas' {formSenha}, 24 frmSenha in 'frmsenha.pas' {formSenha},
26 frmConfiguracoes in 'frmConfiguracoes.pas' {FormConfiguracoes}, 25 frmConfiguracoes in 'frmConfiguracoes.pas' {FormConfiguracoes},
col_moni/col_moni.dpr
@@ -6,7 +6,7 @@ Este arquivo é parte do programa CACIC - Configurador Automático e Coletor de In @@ -6,7 +6,7 @@ Este arquivo é parte do programa CACIC - Configurador Automático e Coletor de In
6 6
7 O CACIC é um software livre; você pode redistribui-lo e/ou modifica-lo dentro dos termos da Licença Pública Geral GNU como 7 O CACIC é um software livre; você pode redistribui-lo e/ou modifica-lo dentro dos termos da Licença Pública Geral GNU como
8 publicada pela Fundação do Software Livre (FSF); na versão 2 da Licença, ou (na sua opinião) qualquer versão. 8 publicada pela Fundação do Software Livre (FSF); na versão 2 da Licença, ou (na sua opinião) qualquer versão.
9 - 9 +
10 Este programa é distribuido na esperança que possa ser util, mas SEM NENHUMA GARANTIA; sem uma garantia implicita de ADEQUAÇÂO a qualquer 10 Este programa é distribuido na esperança que possa ser util, mas SEM NENHUMA GARANTIA; sem uma garantia implicita de ADEQUAÇÂO a qualquer
11 MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU para maiores detalhes. 11 MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU para maiores detalhes.
12 12
@@ -28,7 +28,6 @@ uses @@ -28,7 +28,6 @@ uses
28 CACIC_Library in '..\CACIC_Library.pas'; 28 CACIC_Library in '..\CACIC_Library.pas';
29 29
30 var 30 var
31 - v_path_cacic,  
32 v_Res_Search, 31 v_Res_Search,
33 v_Drive, 32 v_Drive,
34 v_File, 33 v_File,
@@ -876,44 +875,52 @@ begin @@ -876,44 +875,52 @@ begin
876 end; 875 end;
877 end; 876 end;
878 877
  878 +var strAux : String;
879 begin 879 begin
880 g_oCacic := TCACIC.Create(); 880 g_oCacic := TCACIC.Create();
881 881
  882 + g_oCacic.setBoolCipher(true);
  883 +
882 if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then 884 if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then
883 if (ParamCount>0) then 885 if (ParamCount>0) then
884 - Begin  
885 - //Pegarei o nível anterior do diretório, que deve ser, por exemplo \Cacic, para leitura do cacic2.ini  
886 - tstrTripa1 := g_oCacic.explode(ExtractFilePath(ParamStr(0)),'\');  
887 - v_path_cacic := '';  
888 - For intAux := 0 to tstrTripa1.Count -2 do  
889 - begin  
890 - v_path_cacic := v_path_cacic + tstrTripa1[intAux] + '\';  
891 - end;  
892 -  
893 - g_oCacic.setCacicPath(v_path_cacic);  
894 - v_Debugs := false;  
895 - if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then  
896 - Begin  
897 - if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then  
898 - Begin  
899 - v_Debugs := true;  
900 - log_diario('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');  
901 - End;  
902 - End;  
903 -  
904 - v_tstrCipherOpened := TStrings.Create;  
905 - v_tstrCipherOpened := CipherOpen(g_oCacic.getDatFileName);  
906 -  
907 - v_tstrCipherOpened1 := TStrings.Create;  
908 - v_tstrCipherOpened1 := CipherOpen(g_oCacic.getCacicPath + 'temp\col_moni.dat');  
909 -  
910 - Try  
911 - Executa_Col_moni;  
912 - Except  
913 - SetValorDatMemoria('Col_Moni.nada', 'nada', v_tstrCipherOpened1);  
914 - CipherClose(g_oCacic.getCacicPath + 'temp\col_moni.dat', v_tstrCipherOpened1);  
915 - End;  
916 - End; 886 + Begin
  887 + strAux := '';
  888 + For intAux := 1 to ParamCount do
  889 + Begin
  890 + if LowerCase(Copy(ParamStr(intAux),1,11)) = '/cacicpath=' then
  891 + begin
  892 + strAux := Trim(Copy(ParamStr(intAux),12,Length((ParamStr(intAux)))));
  893 + log_DEBUG('Parâmetro /CacicPath recebido com valor="'+strAux+'"');
  894 + end;
  895 + end;
  896 +
  897 + if (strAux <> '') then
  898 + Begin
  899 + g_oCacic.setCacicPath(strAux);
  900 + v_Debugs := false;
  901 + if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then
  902 + Begin
  903 + if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then
  904 + Begin
  905 + v_Debugs := true;
  906 + log_diario('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');
  907 + End;
  908 + End;
  909 +
  910 + v_tstrCipherOpened := TStrings.Create;
  911 + v_tstrCipherOpened := CipherOpen(g_oCacic.getCacicPath + g_oCacic.getDatFileName);
  912 +
  913 + v_tstrCipherOpened1 := TStrings.Create;
  914 + v_tstrCipherOpened1 := CipherOpen(g_oCacic.getCacicPath + 'temp\col_moni.dat');
  915 +
  916 + Try
  917 + Executa_Col_moni;
  918 + Except
  919 + SetValorDatMemoria('Col_Moni.nada', 'nada', v_tstrCipherOpened1);
  920 + CipherClose(g_oCacic.getCacicPath + 'temp\col_moni.dat', v_tstrCipherOpened1);
  921 + End;
  922 + End;
  923 + End;
917 924
918 g_oCacic.Free(); 925 g_oCacic.Free();
919 926
col_patr/col_patr.dpr
@@ -32,12 +32,12 @@ const @@ -32,12 +32,12 @@ const
32 32
33 var 33 var
34 hwind:HWND; 34 hwind:HWND;
35 - g_oCacic : TCACIC; 35 + oCacic : TCACIC;
36 36
37 begin 37 begin
38 - g_oCacic := TCACIC.Create(); 38 + oCacic := TCACIC.Create();
39 39
40 - if( g_oCacic.isAppRunning( CACIC_APP_NAME ) ) 40 + if( oCacic.isAppRunning( CACIC_APP_NAME ) )
41 then begin 41 then begin
42 hwind := 0; 42 hwind := 0;
43 repeat // The string 'My app' must match your App Title (below) 43 repeat // The string 'My app' must match your App Title (below)
@@ -55,6 +55,6 @@ begin @@ -55,6 +55,6 @@ begin
55 Application.Run; 55 Application.Run;
56 end; 56 end;
57 57
58 - g_oCacic.Free(); 58 + oCacic.Free();
59 59
60 end. 60 end.
col_patr/main_col_patr.pas
@@ -906,93 +906,96 @@ var boolColeta : boolean; @@ -906,93 +906,96 @@ var boolColeta : boolean;
906 tstrTripa1 : TStrings; 906 tstrTripa1 : TStrings;
907 i,intAux : integer; 907 i,intAux : integer;
908 v_Aux, 908 v_Aux,
909 - v_path_cacic : String; 909 + strAux : String;
910 Begin 910 Begin
911 g_oCacic := TCACIC.Create(); 911 g_oCacic := TCACIC.Create();
912 912
  913 + g_oCacic.setBoolCipher(true);
  914 +
913 if (ParamCount>0) then 915 if (ParamCount>0) then
914 Begin 916 Begin
915 FormPatrimonio.lbVersao.Caption := 'Versão: ' + GetVersionInfo(ParamStr(0)); 917 FormPatrimonio.lbVersao.Caption := 'Versão: ' + GetVersionInfo(ParamStr(0));
916 -  
917 - v_option := 'system';  
918 - For intAux := 1 to ParamCount do  
919 - Begin  
920 - if LowerCase(Copy(ParamStr(intAux),1,10)) = '/p_option=' then  
921 - v_option := Trim(Copy(ParamStr(intAux),11,Length((ParamStr(intAux)))));  
922 - End;  
923 -  
924 - tstrTripa1 := g_oCacic.explode(ExtractFilePath(Application.Exename),'\'); //Pegarei o nível anterior do diretório, que deve ser, por exemplo \Cacic  
925 - v_path_cacic := '';  
926 - For i := 0 to tstrTripa1.Count -2 do  
927 - v_path_cacic := v_path_cacic + tstrTripa1[i] + '\';  
928 -  
929 - g_oCacic.setCacicPath(v_path_cacic);  
930 - v_Debugs := false;  
931 - if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then  
932 Begin 918 Begin
933 - if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then 919 + strAux := '';
  920 + For intAux := 1 to ParamCount do
934 Begin 921 Begin
935 - v_Debugs := true;  
936 - log_DEBUG('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');  
937 - End;  
938 - End;  
939 -  
940 - v_tstrCipherOpened := TStrings.Create;  
941 - v_tstrCipherOpened := CipherOpen(g_oCacic.getCacicPath + 'cacic2.dat');  
942 -  
943 - v_tstrCipherOpened1 := TStrings.Create;  
944 - v_tstrCipherOpened1 := CipherOpen(g_oCacic.getCacicPath + 'temp\col_patr.dat');  
945 -  
946 - // Os valores possíveis serão 0-DESLIGADO 1-LIGADO 2-ESPERA PARA LIGAR (Será transformado em "1") 3-Ainda se comunicará com o Gerente WEB  
947 - l_cs_cipher := false;  
948 - v_Aux := GetValorDatMemoria('Configs.CS_CIPHER', v_tstrCipherOpened);  
949 - if (v_Aux='1')then  
950 - Begin  
951 - l_cs_cipher := true;  
952 - End;  
953 -  
954 - Try  
955 - boolColeta := false;  
956 - if (GetValorDatMemoria('Patrimonio.in_alteracao_fisica',v_tstrCipherOpened)= 'S') then  
957 - Begin  
958 - // Solicita o cadastramento de informações de patrimõnio caso seja detectado remanejamento para uma nova rede.  
959 - MessageDlg('Atenção: foi identificada uma alteração na localização física deste computador. Por favor, confirme as informações que serão apresentadas na tela que será exibida a seguir.', mtInformation, [mbOk], 0);  
960 - boolColeta := true;  
961 - End  
962 - Else if (GetValorDatMemoria('Patrimonio.in_renovacao_informacoes',v_tstrCipherOpened)= 'S') and (v_option='system') then  
963 - Begin  
964 - // Solicita o cadastramento de informações de patrimõnio caso tenha completado o prazo configurado para renovação de informações.  
965 - MessageDlg('Atenção: é necessário o preenchimento/atualização das informações de Patrimônio e Localização Física deste computador. Por favor, confirme as informações que serão apresentadas na tela que será exibida a seguir.', mtInformation, [mbOk], 0);  
966 - boolColeta := true;  
967 - end  
968 - Else if (GetValorDatMemoria('Patrimonio.dt_ultima_renovacao_patrim',v_tstrCipherOpened)= '') then  
969 - Begin  
970 - // Solicita o cadastramento de informações de patrimõnio caso ainda não tenha sido cadastrado.  
971 - boolColeta := true;  
972 - end;  
973 -  
974 - if boolColeta then 922 + if LowerCase(Copy(ParamStr(intAux),1,11)) = '/cacicpath=' then
  923 + begin
  924 + strAux := Trim(Copy(ParamStr(intAux),12,Length((ParamStr(intAux)))));
  925 + log_DEBUG('Parâmetro /CacicPath recebido com valor="'+strAux+'"');
  926 + end;
  927 + end;
  928 +
  929 + if (strAux <> '') then
975 Begin 930 Begin
976 - SetValorDatMemoria('Col_Patr.Inicio', FormatDateTime('hh:nn:ss', Now), v_tstrCipherOpened1);  
977 - log_diario('Coletando informações de Patrimônio e Localização Física.');  
978 - v_configs := GetValorDatMemoria('Patrimonio.Configs',v_tstrCipherOpened);  
979 - log_DEBUG('Configurações obtidas: '+v_configs);  
980 -  
981 - MontaInterface;  
982 - MontaCombos;  
983 - RecuperaValoresAnteriores;  
984 - 931 + g_oCacic.setCacicPath(strAux);
  932 + v_Debugs := false;
  933 + if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then
  934 + Begin
  935 + if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then
  936 + Begin
  937 + v_Debugs := true;
  938 + log_DEBUG('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');
  939 + End;
  940 + End;
  941 +
  942 + v_tstrCipherOpened := TStrings.Create;
  943 + v_tstrCipherOpened := CipherOpen(g_oCacic.getCacicPath + g_oCacic.getDatFileName);
  944 +
  945 + v_tstrCipherOpened1 := TStrings.Create;
  946 + v_tstrCipherOpened1 := CipherOpen(g_oCacic.getCacicPath + 'temp\col_patr.dat');
  947 +
  948 + // Os valores possíveis serão 0-DESLIGADO 1-LIGADO 2-ESPERA PARA LIGAR (Será transformado em "1") 3-Ainda se comunicará com o Gerente WEB
  949 + l_cs_cipher := false;
  950 + v_Aux := GetValorDatMemoria('Configs.CS_CIPHER', v_tstrCipherOpened);
  951 + if (v_Aux='1')then
  952 + Begin
  953 + l_cs_cipher := true;
  954 + End;
  955 +
  956 + Try
  957 + boolColeta := false;
  958 + if (GetValorDatMemoria('Patrimonio.in_alteracao_fisica',v_tstrCipherOpened)= 'S') then
  959 + Begin
  960 + // Solicita o cadastramento de informações de patrimõnio caso seja detectado remanejamento para uma nova rede.
  961 + MessageDlg('Atenção: foi identificada uma alteração na localização física deste computador. Por favor, confirme as informações que serão apresentadas na tela que será exibida a seguir.', mtInformation, [mbOk], 0);
  962 + boolColeta := true;
  963 + End
  964 + Else if (GetValorDatMemoria('Patrimonio.in_renovacao_informacoes',v_tstrCipherOpened)= 'S') and (v_option='system') then
  965 + Begin
  966 + // Solicita o cadastramento de informações de patrimõnio caso tenha completado o prazo configurado para renovação de informações.
  967 + MessageDlg('Atenção: é necessário o preenchimento/atualização das informações de Patrimônio e Localização Física deste computador. Por favor, confirme as informações que serão apresentadas na tela que será exibida a seguir.', mtInformation, [mbOk], 0);
  968 + boolColeta := true;
  969 + end
  970 + Else if (GetValorDatMemoria('Patrimonio.dt_ultima_renovacao_patrim',v_tstrCipherOpened)= '') then
  971 + Begin
  972 + // Solicita o cadastramento de informações de patrimõnio caso ainda não tenha sido cadastrado.
  973 + boolColeta := true;
  974 + end;
  975 +
  976 + if boolColeta then
  977 + Begin
  978 + SetValorDatMemoria('Col_Patr.Inicio', FormatDateTime('hh:nn:ss', Now), v_tstrCipherOpened1);
  979 + log_diario('Coletando informações de Patrimônio e Localização Física.');
  980 + v_configs := GetValorDatMemoria('Patrimonio.Configs',v_tstrCipherOpened);
  981 + log_DEBUG('Configurações obtidas: '+v_configs);
  982 +
  983 + MontaInterface;
  984 + MontaCombos;
  985 + RecuperaValoresAnteriores;
  986 +
  987 + End;
  988 + Except
  989 + SetValorDatMemoria('Col_Patr.nada','nada', v_tstrCipherOpened1);
  990 + SetValorDatMemoria('Col_Patr.Fim', '99999999', v_tstrCipherOpened1);
  991 + CipherClose(g_oCacic.getCacicPath + 'temp\col_patr.dat', v_tstrCipherOpened1);
  992 + g_oCacic.Free();
  993 + Application.Terminate;
  994 + End;
985 End; 995 End;
986 - Except  
987 - SetValorDatMemoria('Col_Patr.nada','nada', v_tstrCipherOpened1);  
988 - SetValorDatMemoria('Col_Patr.Fim', '99999999', v_tstrCipherOpened1);  
989 - CipherClose(g_oCacic.getCacicPath + 'temp\col_patr.dat', v_tstrCipherOpened1);  
990 - g_oCacic.Free();  
991 - Application.Terminate;  
992 - End;  
993 - End;  
994 -end;  
995 - 996 + End;
  997 + end;
  998 +End;
996 999
997 1000
998 end. 1001 end.
col_soft/col_soft.dpr
@@ -78,7 +78,6 @@ begin @@ -78,7 +78,6 @@ begin
78 Append(HistoricoLog); 78 Append(HistoricoLog);
79 Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now)+ '[Coletor SOFT] '+strMsg); {Grava a string Texto no arquivo texto} 79 Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now)+ '[Coletor SOFT] '+strMsg); {Grava a string Texto no arquivo texto}
80 CloseFile(HistoricoLog); {Fecha o arquivo texto} 80 CloseFile(HistoricoLog); {Fecha o arquivo texto}
81 -  
82 except 81 except
83 log_diario('Erro na gravação do log!'); 82 log_diario('Erro na gravação do log!');
84 end; 83 end;
@@ -623,43 +622,53 @@ begin @@ -623,43 +622,53 @@ begin
623 End; 622 End;
624 end; 623 end;
625 624
626 -var v_path_cacic : String; 625 +var strAux : String;
627 begin 626 begin
628 g_oCacic := TCACIC.Create(); 627 g_oCacic := TCACIC.Create();
629 628
  629 + g_oCacic.setBoolCipher(true);
  630 +
630 if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then 631 if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then
631 if (ParamCount>0) then 632 if (ParamCount>0) then
632 - Begin  
633 - //Pegarei o nível anterior do diretório, que deve ser, por exemplo \Cacic, para leitura do cacic2.ini  
634 - tstrTripa1 := g_oCacic.explode(ExtractFilePath(ParamStr(0)),'\');  
635 - v_path_cacic := '';  
636 - For intAux := 0 to tstrTripa1.Count -2 do  
637 - v_path_cacic := v_path_cacic + tstrTripa1[intAux] + '\';  
638 -  
639 - v_tstrCipherOpened := TStrings.Create;  
640 - v_tstrCipherOpened := CipherOpen(g_oCacic.getDatFileName);  
641 -  
642 - v_tstrCipherOpened1 := TStrings.Create;  
643 - v_tstrCipherOpened1 := CipherOpen(g_oCacic.getCacicPath + 'temp\col_soft.dat');  
644 -  
645 - Try  
646 - v_Debugs := false; 633 + Begin
  634 + strAux := '';
  635 + For intAux := 1 to ParamCount do
  636 + Begin
  637 + if LowerCase(Copy(ParamStr(intAux),1,11)) = '/cacicpath=' then
  638 + begin
  639 + strAux := Trim(Copy(ParamStr(intAux),12,Length((ParamStr(intAux)))));
  640 + end;
  641 + end;
647 642
648 - if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then 643 + if (strAux <> '') then
649 Begin 644 Begin
650 - if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then  
651 - Begin  
652 - v_Debugs := true;  
653 - log_diario('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');  
654 - End; 645 + g_oCacic.setCacicPath(strAux);
  646 +
  647 + v_tstrCipherOpened := TStrings.Create;
  648 + v_tstrCipherOpened := CipherOpen(g_oCacic.getCacicPath + g_oCacic.getDatFileName);
  649 +
  650 + v_tstrCipherOpened1 := TStrings.Create;
  651 + v_tstrCipherOpened1 := CipherOpen(g_oCacic.getCacicPath + 'temp\col_soft.dat');
  652 +
  653 + Try
  654 + v_Debugs := false;
  655 +
  656 + if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then
  657 + Begin
  658 + if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then
  659 + Begin
  660 + v_Debugs := true;
  661 + log_diario('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');
  662 + End;
  663 + End;
  664 +
  665 + Executa_Col_Soft;
  666 + Except
  667 + SetValorDatMemoria('Col_Soft.nada', 'nada', v_tstrCipherOpened1);
  668 + CipherClose(g_oCacic.getCacicPath + 'temp\col_soft.dat', v_tstrCipherOpened1);
  669 + End;
655 End; 670 End;
656 -  
657 - Executa_Col_Soft;  
658 - Except  
659 - SetValorDatMemoria('Col_Soft.nada', 'nada', v_tstrCipherOpened1);  
660 - CipherClose(g_oCacic.getCacicPath + 'temp\col_soft.dat', v_tstrCipherOpened1);  
661 - End;  
662 - End; 671 + End;
663 672
664 g_oCacic.Free(); 673 g_oCacic.Free();
665 674
col_undi/col_undi.dpr
@@ -385,45 +385,52 @@ Begin @@ -385,45 +385,52 @@ Begin
385 End; 385 End;
386 end; 386 end;
387 387
388 -var v_path_cacic : String; 388 +var strAux : String;
389 begin 389 begin
390 g_oCacic := TCACIC.Create(); 390 g_oCacic := TCACIC.Create();
391 391
  392 + g_oCacic.setBoolCipher(true);
  393 +
392 if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then 394 if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then
393 if (ParamCount>0) then 395 if (ParamCount>0) then
394 - Begin  
395 - //Pegarei o nível anterior do diretório, que deve ser, por exemplo \Cacic, para leitura do cacic2.ini  
396 - tstrTripa1 := g_oCacic.explode(ExtractFilePath(ParamStr(0)),'\');  
397 - v_path_cacic := '';  
398 - For intAux := 0 to tstrTripa1.Count -2 do  
399 - begin  
400 - v_path_cacic := v_path_cacic + tstrTripa1[intAux] + '\';  
401 - end;  
402 -  
403 - v_tstrCipherOpened := TStrings.Create;  
404 - v_tstrCipherOpened := CipherOpen(g_oCacic.getDatFileName);  
405 -  
406 - v_tstrCipherOpened1 := TStrings.Create;  
407 - v_tstrCipherOpened1 := CipherOpen(g_oCacic.getCacicPath + 'temp\col_undi.dat');  
408 -  
409 - Try  
410 - v_Debugs := false;  
411 - if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then  
412 - Begin  
413 - if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then  
414 - Begin  
415 - v_Debugs := true;  
416 - log_diario('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');  
417 - End;  
418 - End;  
419 -  
420 - Executa_Col_undi;  
421 - Except  
422 - SetValorDatMemoria('Col_Undi.nada', 'nada', v_tstrCipherOpened1);  
423 - CipherClose(g_oCacic.getCacicPath + 'temp\col_undi.dat', v_tstrCipherOpened1);  
424 - End;  
425 - End;  
426 - 396 + Begin
  397 + strAux := '';
  398 + For intAux := 1 to ParamCount do
  399 + Begin
  400 + if LowerCase(Copy(ParamStr(intAux),1,11)) = '/cacicpath=' then
  401 + begin
  402 + strAux := Trim(Copy(ParamStr(intAux),12,Length((ParamStr(intAux)))));
  403 + end;
  404 + end;
  405 +
  406 + if (strAux <> '') then
  407 + Begin
  408 + g_oCacic.setCacicPath(strAux);
  409 +
  410 + v_tstrCipherOpened := TStrings.Create;
  411 + v_tstrCipherOpened := CipherOpen(g_oCacic.getCacicPath + g_oCacic.getDatFileName);
  412 +
  413 + v_tstrCipherOpened1 := TStrings.Create;
  414 + v_tstrCipherOpened1 := CipherOpen(g_oCacic.getCacicPath + 'temp\col_undi.dat');
  415 +
  416 + Try
  417 + v_Debugs := false;
  418 + if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then
  419 + Begin
  420 + if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then
  421 + Begin
  422 + v_Debugs := true;
  423 + log_diario('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');
  424 + End;
  425 + End;
  426 +
  427 + Executa_Col_undi;
  428 + Except
  429 + SetValorDatMemoria('Col_Undi.nada', 'nada', v_tstrCipherOpened1);
  430 + CipherClose(g_oCacic.getCacicPath + 'temp\col_undi.dat', v_tstrCipherOpened1);
  431 + End;
  432 + End;
  433 + End;
427 g_oCacic.Free(); 434 g_oCacic.Free();
428 435
429 end. 436 end.
ger_cols/ger_cols.dpr
@@ -78,7 +78,6 @@ var @@ -78,7 +78,6 @@ var
78 78
79 var 79 var
80 v_Debugs, 80 v_Debugs,
81 - l_cs_cipher,  
82 l_cs_compress, 81 l_cs_compress,
83 v_CS_AUTO_UPDATE : boolean; 82 v_CS_AUTO_UPDATE : boolean;
84 83
@@ -132,6 +131,7 @@ var intLimite, @@ -132,6 +131,7 @@ var intLimite,
132 strPalavra, 131 strPalavra,
133 strCaracter : String; 132 strCaracter : String;
134 begin 133 begin
  134 + log_diario('Regerando palavra-chave...');
135 Randomize; 135 Randomize;
136 strPalavra := ''; 136 strPalavra := '';
137 intLimite := RandomRange(10,30); // Gerarei uma palavra com tamanho mínimo 10 e máximo 30 137 intLimite := RandomRange(10,30); // Gerarei uma palavra com tamanho mínimo 10 e máximo 30
@@ -350,13 +350,13 @@ begin @@ -350,13 +350,13 @@ begin
350 350
351 v_strCipherOpenImploded := g_oCacic.implode(p_tstrCipherOpened,g_oCacic.getSeparatorKey); 351 v_strCipherOpenImploded := g_oCacic.implode(p_tstrCipherOpened,g_oCacic.getSeparatorKey);
352 352
353 - v_cs_cipher := l_cs_cipher;  
354 - l_cs_cipher := true;  
355 - log_DEBUG('Rotina de Fechamento do cacic2.dat ATIVANDO criptografia.'); 353 + v_cs_cipher := g_oCacic.getBoolCipher;
  354 + g_oCacic.setBoolCipher(true);
  355 + log_DEBUG('Rotina de Fechamento do ' + g_oCacic.getDatFileName + '. ATIVANDO criptografia.');
356 v_strCipherClosed := g_oCacic.enCrypt(v_strCipherOpenImploded); 356 v_strCipherClosed := g_oCacic.enCrypt(v_strCipherOpenImploded);
357 357
358 - l_cs_cipher := v_cs_cipher;  
359 - log_DEBUG('Rotina de Fechamento do cacic2.dat RESTAURANDO estado da criptografia.'); 358 + g_oCacic.setBoolCipher(v_cs_cipher);
  359 + log_DEBUG('Rotina de Fechamento do ' + g_oCacic.getDatFileName + '. RESTAURANDO estado da criptografia.');
360 Writeln(v_DatFile,v_strCipherClosed); {Grava a string Texto no arquivo texto} 360 Writeln(v_DatFile,v_strCipherClosed); {Grava a string Texto no arquivo texto}
361 if v_Debugs then 361 if v_Debugs then
362 Begin 362 Begin
@@ -395,12 +395,12 @@ begin @@ -395,12 +395,12 @@ begin
395 Readln(v_DatFile,v_strCipherClosed); 395 Readln(v_DatFile,v_strCipherClosed);
396 while not EOF(v_DatFile) do Readln(v_DatFile,v_strCipherClosed); 396 while not EOF(v_DatFile) do Readln(v_DatFile,v_strCipherClosed);
397 CloseFile(v_DatFile); 397 CloseFile(v_DatFile);
398 - v_cs_cipher := l_cs_cipher;  
399 - l_cs_cipher := true;  
400 - log_DEBUG('Rotina de Abertura do cacic2.dat ATIVANDO criptografia.'); 398 + v_cs_cipher := g_oCacic.getBoolCipher;
  399 + g_oCacic.setBoolCipher(true);
  400 + log_DEBUG('Rotina de Abertura do ' + g_oCacic.getDatFileName + '. ATIVANDO criptografia.');
401 v_strCipherOpened:= g_oCacic.deCrypt(v_strCipherClosed); 401 v_strCipherOpened:= g_oCacic.deCrypt(v_strCipherClosed);
402 - l_cs_cipher := v_cs_cipher;  
403 - log_DEBUG('Rotina de Abertura do cacic2.dat RESTAURANDO estado da criptografia.'); 402 + g_oCacic.setBoolCipher(v_cs_cipher);
  403 + log_DEBUG('Rotina de Abertura do ' + g_oCacic.getDatFileName + '. RESTAURANDO estado da criptografia.');
404 end; 404 end;
405 if (trim(v_strCipherOpened)<>'') then 405 if (trim(v_strCipherOpened)<>'') then
406 Result := g_oCacic.explode(v_strCipherOpened,g_oCacic.getSeparatorKey) 406 Result := g_oCacic.explode(v_strCipherOpened,g_oCacic.getSeparatorKey)
@@ -418,25 +418,24 @@ begin @@ -418,25 +418,24 @@ begin
418 Matar(g_oCacic.getCacicPath + 'temp\','*.txt'); 418 Matar(g_oCacic.getCacicPath + 'temp\','*.txt');
419 end; 419 end;
420 420
  421 +procedure Sair;
  422 +Begin
  423 + g_oCacic.Free;
  424 + Halt(0);
  425 +End;
  426 +
421 procedure Finalizar(p_pausa:boolean); 427 procedure Finalizar(p_pausa:boolean);
422 Begin 428 Begin
423 - CipherClose(g_oCacic.getDatFileName, v_tstrCipherOpened); 429 + CipherClose(g_oCacic.getCacicPath + g_oCacic.getDatFileName, v_tstrCipherOpened);
424 Apaga_Temps; 430 Apaga_Temps;
425 if p_pausa then sleep(2000); // Pausa de 2 segundos para conclusão de operações de arquivos. 431 if p_pausa then sleep(2000); // Pausa de 2 segundos para conclusão de operações de arquivos.
426 End; 432 End;
427 433
428 -procedure Sair;  
429 -Begin  
430 - log_DEBUG('Liberando Memória - FreeMemory(0)');  
431 - FreeMemory(0);  
432 - log_DEBUG('Suspendendo - Halt(0)');  
433 - Halt(0);  
434 -End;  
435 434
436 -procedure Seta_l_cs_cipher(p_strRetorno : String); 435 +procedure Seta_boolCipher(p_strRetorno : String);
437 var v_Aux : string; 436 var v_Aux : string;
438 Begin 437 Begin
439 - l_cs_cipher := false; 438 + g_oCacic.setBoolCipher(false);
440 439
441 v_Aux := XML_RetornaValor('cs_cipher',p_strRetorno); 440 v_Aux := XML_RetornaValor('cs_cipher',p_strRetorno);
442 if (p_strRetorno = '') or (v_Aux = '') then v_Aux := '3'; 441 if (p_strRetorno = '') or (v_Aux = '') then v_Aux := '3';
@@ -444,7 +443,7 @@ Begin @@ -444,7 +443,7 @@ Begin
444 if (v_Aux='1') then 443 if (v_Aux='1') then
445 Begin 444 Begin
446 log_DEBUG('ATIVANDO Criptografia!'); 445 log_DEBUG('ATIVANDO Criptografia!');
447 - l_cs_cipher := true; 446 + g_oCacic.setBoolCipher(true);
448 End 447 End
449 else if (v_Aux='2') then 448 else if (v_Aux='2') then
450 Begin 449 Begin
@@ -1558,7 +1557,7 @@ procedure Patrimnio1Click(Sender: TObject); @@ -1558,7 +1557,7 @@ procedure Patrimnio1Click(Sender: TObject);
1558 begin 1557 begin
1559 SetValorDatMemoria('Patrimonio.dt_ultima_renovacao_patrim','', v_tstrCipherOpened); 1558 SetValorDatMemoria('Patrimonio.dt_ultima_renovacao_patrim','', v_tstrCipherOpened);
1560 if ChecaAgente(g_oCacic.getCacicPath + 'modulos', 'ini_cols.exe') then 1559 if ChecaAgente(g_oCacic.getCacicPath + 'modulos', 'ini_cols.exe') then
1561 - g_oCacic.createSampleProcess( g_oCacic.getCacicPath + 'modulos\ini_cols.exe /p_ModulosOpcoes=col_patr,wait,user#', CACIC_PROCESS_WAIT ); 1560 + g_oCacic.createSampleProcess( g_oCacic.getCacicPath + 'modulos\ini_cols.exe /CacicPath='+g_oCacic.getCacicPath+' /p_ModulosOpcoes=col_patr,wait,user#', CACIC_PROCESS_WAIT );
1562 1561
1563 if (FileExists(g_oCacic.getCacicPath + 'Temp\col_patr.dat')) then 1562 if (FileExists(g_oCacic.getCacicPath + 'Temp\col_patr.dat')) then
1564 Begin 1563 Begin
@@ -1627,11 +1626,11 @@ end; @@ -1627,11 +1626,11 @@ end;
1627 procedure ChecaCipher; 1626 procedure ChecaCipher;
1628 begin 1627 begin
1629 // Os valores possíveis serão 0-DESLIGADO 1-LIGADO 2-ESPERA PARA LIGAR (Será transformado em "1") 3-Ainda se comunicará com o Gerente WEB 1628 // Os valores possíveis serão 0-DESLIGADO 1-LIGADO 2-ESPERA PARA LIGAR (Será transformado em "1") 3-Ainda se comunicará com o Gerente WEB
1630 - l_cs_cipher := false; 1629 + g_oCacic.setBoolCipher(false);
1631 v_Aux := GetValorDatMemoria('Configs.CS_CIPHER', v_tstrCipherOpened); 1630 v_Aux := GetValorDatMemoria('Configs.CS_CIPHER', v_tstrCipherOpened);
1632 if (v_Aux='1') or (v_Aux='2') then 1631 if (v_Aux='1') or (v_Aux='2') then
1633 Begin 1632 Begin
1634 - l_cs_cipher := true; 1633 + g_oCacic.setBoolCipher(true);
1635 SetValorDatMemoria('Configs.CS_CIPHER','1', v_tstrCipherOpened); 1634 SetValorDatMemoria('Configs.CS_CIPHER','1', v_tstrCipherOpened);
1636 End 1635 End
1637 else 1636 else
@@ -1654,17 +1653,63 @@ begin @@ -1654,17 +1653,63 @@ begin
1654 end; 1653 end;
1655 1654
1656 procedure BuscaConfigs(p_mensagem_log : boolean); 1655 procedure BuscaConfigs(p_mensagem_log : boolean);
1657 -var Request_SVG, v_array_campos, v_array_valores, v_Report : TStringList;  
1658 - intAux1, intAux2, intAux3, intAux4, v_conta_EXCECOES, v_index_ethernet : integer;  
1659 - strRetorno, strTripa, strAux3, ValorChaveRegistro, ValorRetornado, v_mensagem_log,  
1660 - v_mascara,te_ip,te_mascara, te_gateway, te_serv_dhcp, te_dns_primario, te_dns_secundario, te_wins_primario, te_wins_secundario, te_nome_host, te_dominio_dns, te_dominio_windows,  
1661 - v_mac_address,v_metodo_obtencao,v_nome_arquivo,IpConfigLINHA, v_enderecos_mac_invalidos, v_win_dir, v_dir_command, v_dir_ipcfg, v_win_dir_command, v_win_dir_ipcfg, v_te_serv_cacic : string;  
1662 - tstrTripa1, tstrTripa2, tstrTripa3, tstrTripa4, tstrTripa5, tstrEXCECOES : TStrings;  
1663 - IpConfigTXT, chksis_ini : textfile;  
1664 -  
1665 - v_oMachine : TMiTec_Machine;  
1666 - v_TCPIP : TMiTeC_TCPIP;  
1667 - v_NETWORK : TMiTeC_Network; 1656 +var
  1657 + Request_SVG,
  1658 + v_array_campos,
  1659 + v_array_valores,
  1660 + v_Report : TStringList;
  1661 +
  1662 + intAux1,
  1663 + intAux2,
  1664 + intAux3,
  1665 + intAux4,
  1666 + v_conta_EXCECOES,
  1667 + v_index_ethernet : integer;
  1668 +
  1669 + strRetorno,
  1670 + strTripa,
  1671 + strAux3,
  1672 + ValorChaveRegistro,
  1673 + ValorRetornado,
  1674 + v_mensagem_log,
  1675 + v_mascara,
  1676 + te_ip,
  1677 + te_mascara,
  1678 + te_gateway,
  1679 + te_serv_dhcp,
  1680 + te_dns_primario,
  1681 + te_dns_secundario,
  1682 + te_wins_primario,
  1683 + te_wins_secundario,
  1684 + te_nome_host,
  1685 + te_dominio_dns,
  1686 + te_dominio_windows,
  1687 + v_mac_address,
  1688 + v_metodo_obtencao,
  1689 + v_nome_arquivo,
  1690 + IpConfigLINHA,
  1691 + v_enderecos_mac_invalidos,
  1692 + v_win_dir,
  1693 + v_dir_command,
  1694 + v_dir_ipcfg,
  1695 + v_win_dir_command,
  1696 + v_win_dir_ipcfg,
  1697 + v_te_serv_cacic : string;
  1698 +
  1699 + tstrTripa1,
  1700 + tstrTripa2,
  1701 + tstrTripa3,
  1702 + tstrTripa4,
  1703 + tstrTripa5,
  1704 + tstrEXCECOES : TStrings;
  1705 +
  1706 + IpConfigTXT,
  1707 + chksis_ini,
  1708 + v_txtCookie : TextFile;
  1709 +
  1710 + v_oMachine : TMiTec_Machine;
  1711 + v_TCPIP : TMiTeC_TCPIP;
  1712 + v_NETWORK : TMiTeC_Network;
1668 Begin 1713 Begin
1669 Try 1714 Try
1670 ChecaCipher; 1715 ChecaCipher;
@@ -1755,12 +1800,12 @@ Begin @@ -1755,12 +1800,12 @@ Begin
1755 SetValorDatMemoria('TcpIp.TE_IP',v_tcpip.Adapter[v_index_ethernet].IPAddress[intAux1], v_tstrCipherOpened); 1800 SetValorDatMemoria('TcpIp.TE_IP',v_tcpip.Adapter[v_index_ethernet].IPAddress[intAux1], v_tstrCipherOpened);
1756 Try 1801 Try
1757 strRetorno := ComunicaServidor('get_config.php', Request_SVG, 'Testando comunicação com o Módulo Gerente WEB.'); 1802 strRetorno := ComunicaServidor('get_config.php', Request_SVG, 'Testando comunicação com o Módulo Gerente WEB.');
1758 - Seta_l_cs_cipher(strRetorno); 1803 + Seta_boolCipher(strRetorno);
1759 Seta_l_cs_compress(strRetorno); 1804 Seta_l_cs_compress(strRetorno);
1760 1805
1761 v_Aux := g_oCacic.deCrypt(XML_RetornaValor('te_serv_cacic', strRetorno)); 1806 v_Aux := g_oCacic.deCrypt(XML_RetornaValor('te_serv_cacic', strRetorno));
1762 if (v_te_serv_cacic <> v_Aux) and (v_Aux <> '') then 1807 if (v_te_serv_cacic <> v_Aux) and (v_Aux <> '') then
1763 - SetValorDatMemoria('Configs.EnderecoServidor',v_Aux, v_tstrCipherOpened); 1808 + SetValorDatMemoria('Configs.EnderecoServidor',Trim(v_Aux), v_tstrCipherOpened);
1764 1809
1765 if (strRetorno <> '0') and (g_oCacic.deCrypt(XML_RetornaValor('te_rede_ok', strRetorno))<>'N') Then 1810 if (strRetorno <> '0') and (g_oCacic.deCrypt(XML_RetornaValor('te_rede_ok', strRetorno))<>'N') Then
1766 Begin 1811 Begin
@@ -1783,12 +1828,12 @@ Begin @@ -1783,12 +1828,12 @@ Begin
1783 Request_SVG.Values['in_teste'] := StringReplace(g_oCacic.enCrypt('OK'),'+','<MAIS>',[rfReplaceAll]); 1828 Request_SVG.Values['in_teste'] := StringReplace(g_oCacic.enCrypt('OK'),'+','<MAIS>',[rfReplaceAll]);
1784 Try 1829 Try
1785 strRetorno := ComunicaServidor('get_config.php', Request_SVG, 'Teste de comunicação com o Módulo Gerente WEB.'); 1830 strRetorno := ComunicaServidor('get_config.php', Request_SVG, 'Teste de comunicação com o Módulo Gerente WEB.');
1786 - Seta_l_cs_cipher(strRetorno); 1831 + Seta_boolCipher(strRetorno);
1787 Seta_l_cs_compress(strRetorno); 1832 Seta_l_cs_compress(strRetorno);
1788 1833
1789 v_Aux := g_oCacic.deCrypt(XML_RetornaValor('te_serv_cacic', strRetorno)); 1834 v_Aux := g_oCacic.deCrypt(XML_RetornaValor('te_serv_cacic', strRetorno));
1790 if (v_te_serv_cacic <> v_Aux) and (v_Aux <> '') then 1835 if (v_te_serv_cacic <> v_Aux) and (v_Aux <> '') then
1791 - SetValorDatMemoria('Configs.EnderecoServidor',v_Aux, v_tstrCipherOpened); 1836 + SetValorDatMemoria('Configs.EnderecoServidor',Trim(v_Aux), v_tstrCipherOpened);
1792 1837
1793 if (strRetorno <> '0') and (g_oCacic.deCrypt(XML_RetornaValor('te_rede_ok', strRetorno))<>'N') Then 1838 if (strRetorno <> '0') and (g_oCacic.deCrypt(XML_RetornaValor('te_rede_ok', strRetorno))<>'N') Then
1794 Begin 1839 Begin
@@ -1860,11 +1905,9 @@ Begin @@ -1860,11 +1905,9 @@ Begin
1860 1905
1861 log_DEBUG(v_acao_gercols + ' Parâmetros: in_chkcacic="'+Request_SVG.Values['in_chkcacic']+'", te_fila_ftp="'+Request_SVG.Values['te_fila_ftp']+'" e id_ip_estacao="'+Request_SVG.Values['id_ip_estacao']+'"'); 1906 log_DEBUG(v_acao_gercols + ' Parâmetros: in_chkcacic="'+Request_SVG.Values['in_chkcacic']+'", te_fila_ftp="'+Request_SVG.Values['te_fila_ftp']+'" e id_ip_estacao="'+Request_SVG.Values['id_ip_estacao']+'"');
1862 strRetorno := ComunicaServidor('get_config.php', Request_SVG, v_mensagem_log); 1907 strRetorno := ComunicaServidor('get_config.php', Request_SVG, v_mensagem_log);
1863 - Seta_l_cs_cipher(strRetorno); 1908 + Seta_boolCipher(strRetorno);
1864 Seta_l_cs_compress(strRetorno); 1909 Seta_l_cs_compress(strRetorno);
1865 1910
1866 -  
1867 -  
1868 Request_SVG.Free; 1911 Request_SVG.Free;
1869 if (strRetorno <> '0') Then 1912 if (strRetorno <> '0') Then
1870 Begin 1913 Begin
@@ -1972,7 +2015,7 @@ Begin @@ -1972,7 +2015,7 @@ Begin
1972 log_DEBUG('Executando "'+g_oCacic.getCacicPath + 'modulos\' + v_scripter + ' //b ' + g_oCacic.getCacicPath + 'temp\ipconfig.vbs"'); 2015 log_DEBUG('Executando "'+g_oCacic.getCacicPath + 'modulos\' + v_scripter + ' //b ' + g_oCacic.getCacicPath + 'temp\ipconfig.vbs"');
1973 2016
1974 if ChecaAgente(g_oCacic.getCacicPath + 'modulos', v_scripter) then 2017 if ChecaAgente(g_oCacic.getCacicPath + 'modulos', v_scripter) then
1975 - WinExec(PChar(g_oCacic.getCacicPath + 'modulos\' + v_scripter + ' //b ' + g_oCacic.getCacicPath + 'temp\ipconfig.vbs'), SW_HIDE); 2018 + g_oCacic.createSampleProcess(g_oCacic.getCacicPath + 'modulos\' + v_scripter + ' //b ' + g_oCacic.getCacicPath + 'temp\ipconfig.vbs', false);
1976 Except 2019 Except
1977 Begin 2020 Begin
1978 log_diario('Erro na geração do ipconfig.txt pelo ' + v_metodo_obtencao+'.'); 2021 log_diario('Erro na geração do ipconfig.txt pelo ' + v_metodo_obtencao+'.');
@@ -2014,7 +2057,7 @@ Begin @@ -2014,7 +2057,7 @@ Begin
2014 v_dir_ipcfg := '\'; 2057 v_dir_ipcfg := '\';
2015 End; 2058 End;
2016 2059
2017 - WinExec(PChar(v_win_dir + v_dir_command + '\cmd.exe /c ' + v_win_dir + v_dir_ipcfg + '\ipconfig.exe /all > ' + v_nome_arquivo), SW_MINIMIZE); 2060 + g_oCacic.createSampleProcess(v_win_dir + v_dir_command + '\cmd.exe /c ' + v_win_dir + v_dir_ipcfg + '\ipconfig.exe /all > ' + v_nome_arquivo, false);
2018 End 2061 End
2019 else 2062 else
2020 Begin 2063 Begin
@@ -2036,7 +2079,7 @@ Begin @@ -2036,7 +2079,7 @@ Begin
2036 v_win_dir_ipcfg := LeftStr(v_win_dir_command,2); 2079 v_win_dir_ipcfg := LeftStr(v_win_dir_command,2);
2037 v_dir_ipcfg := '\'; 2080 v_dir_ipcfg := '\';
2038 End; 2081 End;
2039 - WinExec(PChar(v_win_dir + v_dir_command + '\command.com /c ' + v_win_dir + v_dir_ipcfg + '\winipcfg.exe /all /batch ' + v_nome_arquivo), SW_MINIMIZE); 2082 + g_oCacic.createSampleProcess(v_win_dir + v_dir_command + '\command.com /c ' + v_win_dir + v_dir_ipcfg + '\winipcfg.exe /all /batch ' + v_nome_arquivo, false);
2040 End; 2083 End;
2041 Except log_diario('Erro na geração do ipconfig.txt pelo ' + v_metodo_obtencao+'.'); 2084 Except log_diario('Erro na geração do ipconfig.txt pelo ' + v_metodo_obtencao+'.');
2042 End; 2085 End;
@@ -2253,8 +2296,13 @@ Begin @@ -2253,8 +2296,13 @@ Begin
2253 v_Aux := StringReplace(v_Aux ,'\' ,'<BarrInv>' ,[rfReplaceAll]); 2296 v_Aux := StringReplace(v_Aux ,'\' ,'<BarrInv>' ,[rfReplaceAll]);
2254 v_Aux := StringReplace(g_oCacic.enCrypt(v_Aux) ,'+' ,'<MAIS>' ,[rfReplaceAll]); 2297 v_Aux := StringReplace(g_oCacic.enCrypt(v_Aux) ,'+' ,'<MAIS>' ,[rfReplaceAll]);
2255 2298
2256 - log_DEBUG('Invocando "'+g_oCacic.getCacicPath + 'modulos\srcacicsrv.exe -update [' + v_Aux + ']' );  
2257 - WinExec(PChar(g_oCacic.getCacicPath + 'modulos\srcacicsrv.exe -update [' + v_Aux + ']'),SW_NORMAL); 2299 + log_DEBUG('Criando cookie para srCACICsrv com nova palavra-chave.');
  2300 +
  2301 + AssignFile(v_txtCookie,g_oCacic.getCacicPath + 'temp\cacic_ck.txt');
  2302 + Rewrite(v_txtCookie);
  2303 + Append(v_txtCookie);
  2304 + Writeln(v_txtCookie,v_Aux);
  2305 + CloseFile(v_txtCookie);
2258 End; 2306 End;
2259 2307
2260 2308
@@ -2264,12 +2312,12 @@ Begin @@ -2264,12 +2312,12 @@ Begin
2264 strRetorno := ComunicaServidor('get_config.php', Request_SVG, v_mensagem_log); 2312 strRetorno := ComunicaServidor('get_config.php', Request_SVG, v_mensagem_log);
2265 2313
2266 // A versão com criptografia do Módulo Gerente WEB retornará o valor cs_cipher=1(Quando receber "1") ou cs_cipher=2(Quando receber "3") 2314 // A versão com criptografia do Módulo Gerente WEB retornará o valor cs_cipher=1(Quando receber "1") ou cs_cipher=2(Quando receber "3")
2267 - Seta_l_cs_cipher(strRetorno); 2315 + Seta_boolCipher(strRetorno);
2268 2316
2269 // A versão com compressão do Módulo Gerente WEB retornará o valor cs_compress=1(Quando receber "1") ou cs_compress=2(Quando receber "3") 2317 // A versão com compressão do Módulo Gerente WEB retornará o valor cs_compress=1(Quando receber "1") ou cs_compress=2(Quando receber "3")
2270 Seta_l_cs_compress(strRetorno); 2318 Seta_l_cs_compress(strRetorno);
2271 2319
2272 - v_te_serv_cacic := g_oCacic.deCrypt(XML_RetornaValor('te_serv_cacic',strRetorno)); 2320 + v_te_serv_cacic := trim(g_oCacic.deCrypt(XML_RetornaValor('te_serv_cacic',strRetorno)));
2273 2321
2274 if (strRetorno <> '0') and 2322 if (strRetorno <> '0') and
2275 (v_te_serv_cacic<>'') and 2323 (v_te_serv_cacic<>'') and
@@ -2278,7 +2326,7 @@ Begin @@ -2278,7 +2326,7 @@ Begin
2278 v_mensagem_log := 'Novo endereço para Gerente WEB: '+v_te_serv_cacic; 2326 v_mensagem_log := 'Novo endereço para Gerente WEB: '+v_te_serv_cacic;
2279 SetValorDatMemoria('Configs.EnderecoServidor',v_te_serv_cacic, v_tstrCipherOpened); 2327 SetValorDatMemoria('Configs.EnderecoServidor',v_te_serv_cacic, v_tstrCipherOpened);
2280 log_DEBUG('Setando Criptografia para 3. (Primeiro contato)'); 2328 log_DEBUG('Setando Criptografia para 3. (Primeiro contato)');
2281 - Seta_l_cs_cipher(''); 2329 + Seta_boolCipher('');
2282 log_DEBUG('Refazendo comunicação'); 2330 log_DEBUG('Refazendo comunicação');
2283 2331
2284 // Passei a enviar sempre a versão do CACIC... 2332 // Passei a enviar sempre a versão do CACIC...
@@ -2287,7 +2335,7 @@ Begin @@ -2287,7 +2335,7 @@ Begin
2287 Request_SVG := TStringList.Create; 2335 Request_SVG := TStringList.Create;
2288 Request_SVG.Values['te_tripa_perfis'] := StringReplace(g_oCacic.enCrypt(''),'+','<MAIS>',[rfReplaceAll]); 2336 Request_SVG.Values['te_tripa_perfis'] := StringReplace(g_oCacic.enCrypt(''),'+','<MAIS>',[rfReplaceAll]);
2289 strRetorno := ComunicaServidor('get_config.php', Request_SVG, v_mensagem_log); 2337 strRetorno := ComunicaServidor('get_config.php', Request_SVG, v_mensagem_log);
2290 - Seta_l_cs_cipher(strRetorno); 2338 + Seta_boolCipher(strRetorno);
2291 Seta_l_cs_compress(strRetorno); 2339 Seta_l_cs_compress(strRetorno);
2292 End; 2340 End;
2293 2341
@@ -2337,7 +2385,7 @@ Begin @@ -2337,7 +2385,7 @@ Begin
2337 v_acao_gercols := 'Armazenando valores obtidos no DAT Memória.'; 2385 v_acao_gercols := 'Armazenando valores obtidos no DAT Memória.';
2338 2386
2339 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 2387 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2340 - //Gravação no CACIC2.DAT dos valores de REDE, COMPUTADOR e EXECUÇÃO obtidos, para consulta pelos outros módulos... 2388 + //Gravação no DatFileName dos valores de REDE, COMPUTADOR e EXECUÇÃO obtidos, para consulta pelos outros módulos...
2341 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 2389 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2342 SetValorDatMemoria('Configs.CS_AUTO_UPDATE' ,UpperCase(g_oCacic.deCrypt(XML_RetornaValor('cs_auto_update' , strRetorno))), v_tstrCipherOpened); 2390 SetValorDatMemoria('Configs.CS_AUTO_UPDATE' ,UpperCase(g_oCacic.deCrypt(XML_RetornaValor('cs_auto_update' , strRetorno))), v_tstrCipherOpened);
2343 SetValorDatMemoria('Configs.CS_COLETA_HARDWARE' ,UpperCase(g_oCacic.deCrypt(XML_RetornaValor('cs_coleta_hardware' , strRetorno))), v_tstrCipherOpened); 2391 SetValorDatMemoria('Configs.CS_COLETA_HARDWARE' ,UpperCase(g_oCacic.deCrypt(XML_RetornaValor('cs_coleta_hardware' , strRetorno))), v_tstrCipherOpened);
@@ -2489,7 +2537,7 @@ Begin @@ -2489,7 +2537,7 @@ Begin
2489 Finalizar(false); 2537 Finalizar(false);
2490 2538
2491 if ChecaAgente(g_oCacic.getCacicPath, 'cacic2.exe') then 2539 if ChecaAgente(g_oCacic.getCacicPath, 'cacic2.exe') then
2492 - WinExec(PChar(g_oCacic.getCacicPath + 'cacic2.exe /atualizacao'), SW_MINIMIZE); 2540 + g_oCacic.createSampleProcess(g_oCacic.getCacicPath + 'cacic2.exe /atualizacao', false);
2493 Sair; 2541 Sair;
2494 end; 2542 end;
2495 2543
@@ -2542,7 +2590,7 @@ Begin @@ -2542,7 +2590,7 @@ Begin
2542 BuscaConfigs(false); 2590 BuscaConfigs(false);
2543 Batchfile := TStringList.Create; 2591 Batchfile := TStringList.Create;
2544 Batchfile.Add('*** Simulação de cookie para cacic2.exe recarregar os valores de configurações ***'); 2592 Batchfile.Add('*** Simulação de cookie para cacic2.exe recarregar os valores de configurações ***');
2545 - // A existência deste arquivo forçará o Cacic2.exe a recarregar valores das configurações obtidas e gravadas no Cacic2.DAT 2593 + // A existência deste arquivo forçará o Cacic2.exe a recarregar valores das configurações obtidas e gravadas no DatFileName
2546 Batchfile.SaveToFile(g_oCacic.getCacicPath + 'Temp\reset.txt'); 2594 Batchfile.SaveToFile(g_oCacic.getCacicPath + 'Temp\reset.txt');
2547 BatchFile.Free; 2595 BatchFile.Free;
2548 log_DEBUG('Configurações apanhadas no módulo Gerente WEB. Retornando ao Agente Principal...'); 2596 log_DEBUG('Configurações apanhadas no módulo Gerente WEB. Retornando ao Agente Principal...');
@@ -2799,7 +2847,7 @@ Begin @@ -2799,7 +2847,7 @@ Begin
2799 Finalizar(false); 2847 Finalizar(false);
2800 Matar(g_oCacic.getCacicPath + 'temp\','*.dat'); 2848 Matar(g_oCacic.getCacicPath + 'temp\','*.dat');
2801 CriaTXT(g_oCacic.getCacicPath+'temp','coletas'); 2849 CriaTXT(g_oCacic.getCacicPath+'temp','coletas');
2802 - g_oCacic.createSampleProcess( g_oCacic.getCacicPath + 'modulos\ini_cols.exe /p_ModulosOpcoes=' + v_ModulosOpcoes, CACIC_PROCESS_WAIT ); 2850 + g_oCacic.createSampleProcess( g_oCacic.getCacicPath + 'modulos\ini_cols.exe /CacicPath='+g_oCacic.getCacicPath+' /p_ModulosOpcoes=' + v_ModulosOpcoes, CACIC_PROCESS_WAIT );
2803 End; 2851 End;
2804 2852
2805 end 2853 end
@@ -3209,77 +3257,86 @@ Begin @@ -3209,77 +3257,86 @@ Begin
3209 SetValorDatMemoria('Erro_Fatal_Descricao', v_acao_gercols, v_tstrCipherOpened); 3257 SetValorDatMemoria('Erro_Fatal_Descricao', v_acao_gercols, v_tstrCipherOpened);
3210 End; 3258 End;
3211 End; 3259 End;
3212 - 3260 + g_oCacic.Free;
3213 End; 3261 End;
3214 3262
3215 -var v_path_cacic : String;  
3216 begin 3263 begin
3217 g_oCacic := TCACIC.Create(); 3264 g_oCacic := TCACIC.Create();
3218 3265
3219 - if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then begin  
3220 - Try  
3221 - // Pegarei o nível anterior do diretório, que deve ser, por exemplo \Cacic, para leitura do cacic2.DAT  
3222 - tstrTripa1 := g_oCacic.explode(ExtractFilePath(ParamStr(0)),'\');  
3223 - v_path_cacic := '';  
3224 - For intAux := 0 to tstrTripa1.Count -2 do  
3225 - v_path_cacic := v_path_cacic + tstrTripa1[intAux] + '\';  
3226 -  
3227 - g_oCacic.setCacicPath(v_path_cacic);  
3228 - v_Debugs := false;  
3229 - if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then  
3230 - if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then  
3231 - Begin  
3232 - v_Debugs := true;  
3233 - log_DEBUG('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');  
3234 - End;  
3235 -  
3236 - g_oCacic.setCacicPath(g_oCacic.getCacicPath);  
3237 -  
3238 -  
3239 -  
3240 - // De acordo com a versão do OS, determina-se o ShellCommand para chamadas externas.  
3241 - p_Shell_Command := 'cmd.exe /c '; //NT/2K/XP  
3242 - if(g_oCacic.isWindows9xME()) then  
3243 - p_Shell_Command := 'command.com /c ';  
3244 -  
3245 - if not DirectoryExists(g_oCacic.getCacicPath + 'Temp') then  
3246 - ForceDirectories(g_oCacic.getCacicPath + 'Temp');  
3247 -  
3248 - v_tstrCipherOpened := TStrings.Create;  
3249 - v_tstrCipherOpened := CipherOpen(g_oCacic.getDatFileName);  
3250 -  
3251 - // Não tirar desta posição  
3252 - SetValorDatMemoria('Configs.TE_SO',g_oCacic.getWindowsStrId(), v_tstrCipherOpened);  
3253 -  
3254 - log_DEBUG('Te_So obtido: "' + g_oCacic.getWindowsStrId() +'"');  
3255 -  
3256 - v_scripter := 'wscript.exe';  
3257 - // A existência e bloqueio do arquivo abaixo evitará que Cacic2.exe chame o Ger_Cols quando este estiver em funcionamento  
3258 - AssignFile(v_Aguarde,g_oCacic.getCacicPath + 'temp\aguarde_GER.txt'); {Associa o arquivo a uma variável do tipo TextFile}  
3259 - {$IOChecks off}  
3260 - Reset(v_Aguarde); {Abre o arquivo texto}  
3261 - {$IOChecks on}  
3262 - if (IOResult <> 0) then // Arquivo não existe, será recriado.  
3263 - Rewrite (v_Aguarde); 3266 + if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then
  3267 + begin
  3268 + if ParamCount > 0 then
  3269 + Begin
  3270 + strAux := '';
  3271 + v_Debugs := true;
3264 3272
3265 - Append(v_Aguarde);  
3266 - Writeln(v_Aguarde,'Apenas um pseudo-cookie para o Cacic2 esperar o término de Ger_Cols');  
3267 - Append(v_Aguarde); 3273 + For intAux := 1 to ParamCount do
  3274 + Begin
  3275 + if (LowerCase(Copy(ParamStr(intAux),1,11)) = '/cacicpath=') then
  3276 + begin
  3277 + v_acao_gercols := 'Configurando CacicPath.';
  3278 + strAux := Copy(ParamStr(intAux),12,StrLen(PChar(ParamStr(intAux))));
  3279 + end;
  3280 + end;
3268 3281
3269 - ChecaCipher;  
3270 - ChecaCompress; 3282 + if (strAux <> '') then
  3283 + Begin
  3284 + g_oCacic.setCacicPath(strAux);
  3285 + log_DEBUG('Parâmetro /CacicPath recebido com valor="'+strAux+'"');
  3286 + Try
  3287 + v_Debugs := false;
  3288 + if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then
  3289 + if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then
  3290 + Begin
  3291 + v_Debugs := true;
  3292 + log_DEBUG('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');
  3293 + End;
3271 3294
3272 - Executa_Ger_Cols;  
3273 - Finalizar(true);  
3274 - Except  
3275 - Begin  
3276 - log_diario('PROBLEMAS EM EXECUTA_GER_COLS! Ação: ' + v_acao_gercols+'.');  
3277 - CriaTXT(g_oCacic.getCacicPath,'ger_erro');  
3278 - Finalizar(false);  
3279 - SetValorDatMemoria('Erro_Fatal_Descricao', v_acao_gercols, v_tstrCipherOpened);  
3280 - End;  
3281 - End; 3295 + g_oCacic.setCacicPath(g_oCacic.getCacicPath);
  3296 +
  3297 + // De acordo com a versão do OS, determina-se o ShellCommand para chamadas externas.
  3298 + p_Shell_Command := 'cmd.exe /c '; //NT/2K/XP
  3299 + if(g_oCacic.isWindows9xME()) then
  3300 + p_Shell_Command := 'command.com /c ';
  3301 +
  3302 + if not DirectoryExists(g_oCacic.getCacicPath + 'Temp') then
  3303 + ForceDirectories(g_oCacic.getCacicPath + 'Temp');
  3304 +
  3305 + v_tstrCipherOpened := TStrings.Create;
  3306 + v_tstrCipherOpened := CipherOpen(g_oCacic.getCacicPath + g_oCacic.getDatFileName);
  3307 +
  3308 + // Não tirar desta posição
  3309 + SetValorDatMemoria('Configs.TE_SO',g_oCacic.getWindowsStrId(), v_tstrCipherOpened);
  3310 +
  3311 + log_DEBUG('Te_So obtido: "' + g_oCacic.getWindowsStrId() +'"');
  3312 +
  3313 + v_scripter := 'wscript.exe';
  3314 + // A existência e bloqueio do arquivo abaixo evitará que Cacic2.exe chame o Ger_Cols quando este estiver em funcionamento
  3315 + AssignFile(v_Aguarde,g_oCacic.getCacicPath + 'temp\aguarde_GER.txt'); {Associa o arquivo a uma variável do tipo TextFile}
  3316 + {$IOChecks off}
  3317 + Reset(v_Aguarde); {Abre o arquivo texto}
  3318 + {$IOChecks on}
  3319 + if (IOResult <> 0) then // Arquivo não existe, será recriado.
  3320 + Rewrite (v_Aguarde);
  3321 +
  3322 + Append(v_Aguarde);
  3323 + Writeln(v_Aguarde,'Apenas um pseudo-cookie para o Cacic2 esperar o término de Ger_Cols');
  3324 + Append(v_Aguarde);
  3325 +
  3326 + ChecaCipher;
  3327 + ChecaCompress;
  3328 +
  3329 + Executa_Ger_Cols;
  3330 + Finalizar(true);
  3331 + Except
  3332 + Begin
  3333 + log_diario('PROBLEMAS EM EXECUTA_GER_COLS! Ação: ' + v_acao_gercols+'.');
  3334 + CriaTXT(g_oCacic.getCacicPath,'ger_erro');
  3335 + Finalizar(false);
  3336 + SetValorDatMemoria('Erro_Fatal_Descricao', v_acao_gercols, v_tstrCipherOpened);
  3337 + End;
  3338 + End;
  3339 + End;
  3340 + End;
3282 End; 3341 End;
3283 -  
3284 - g_oCacic.Free();  
3285 end. 3342 end.
ini_cols/ini_cols.dpr
@@ -27,20 +27,24 @@ uses @@ -27,20 +27,24 @@ uses
27 PJVersionInfo, 27 PJVersionInfo,
28 CACIC_Library in '..\CACIC_Library.pas'; 28 CACIC_Library in '..\CACIC_Library.pas';
29 29
30 -var v_te_senha_login_serv_updates,  
31 - v_versao : string;  
32 - v_array_path_cacic : TStrings;  
33 - intAux,  
34 - v_ContaTempo,  
35 - v_Tolerancia : integer;  
36 - v_ModulosOpcoes,  
37 - v_Aux : String;  
38 - v_Debugs : Boolean;  
39 - v_Aguarde : TextFile;  
40 -  
41 -var v_tstrCipherOpened,  
42 - v_tstrModulosOpcoes,  
43 - v_tstrModuloOpcao : TStrings; 30 +var
  31 + v_te_senha_login_serv_updates,
  32 + v_versao,
  33 + v_ModulosOpcoes : String;
  34 +
  35 +var
  36 + v_tstrCipherOpened,
  37 + v_tstrModulosOpcoes,
  38 + v_tstrModuloOpcao : TStrings;
  39 +
  40 +var
  41 + intAux,
  42 + v_ContaTempo,
  43 + v_Tolerancia : integer;
  44 +
  45 +var
  46 + v_Debugs : Boolean;
  47 + v_Aguarde : TextFile;
44 48
45 var 49 var
46 g_oCacic : TCACIC; 50 g_oCacic : TCACIC;
@@ -158,7 +162,6 @@ var v_DatFile : TextFile; @@ -158,7 +162,6 @@ var v_DatFile : TextFile;
158 v_strCipherClosed : string; 162 v_strCipherClosed : string;
159 oCacic : TCACIC; 163 oCacic : TCACIC;
160 begin 164 begin
161 - oCacic := TCACIC.Create();  
162 v_strCipherOpened := ''; 165 v_strCipherOpened := '';
163 if FileExists(p_DatFileName) then 166 if FileExists(p_DatFileName) then
164 begin 167 begin
@@ -190,8 +193,6 @@ begin @@ -190,8 +193,6 @@ begin
190 log_DEBUG('Vetor MemoryDAT com tamanho IMPAR... Ajustando.'); 193 log_DEBUG('Vetor MemoryDAT com tamanho IMPAR... Ajustando.');
191 Result.Add(''); 194 Result.Add('');
192 End; 195 End;
193 -  
194 - oCacic.Free();  
195 end; 196 end;
196 197
197 Function FTP(p_Host : String; p_Port : String; p_Username : String; p_Password : String; p_PathServer : String; p_File : String; p_Dest : String) : Boolean; 198 Function FTP(p_Host : String; p_Port : String; p_Username : String; p_Password : String; p_PathServer : String; p_File : String; p_Dest : String) : Boolean;
@@ -225,100 +226,108 @@ begin @@ -225,100 +226,108 @@ begin
225 End; 226 End;
226 end; 227 end;
227 228
228 -var v_path_cacic : String; 229 +var strAux : String;
229 begin 230 begin
230 g_oCacic := TCACIC.Create(); 231 g_oCacic := TCACIC.Create();
231 232
  233 + g_oCacic.setBoolCipher(true);
  234 +
232 if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then 235 if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then
233 - if (ParamCount>0) then // A passagem da chave EAS é mandatória...  
234 - Begin  
235 - //Pegarei o nível anterior do diretório, que deve ser, por exemplo \Cacic, para leitura do cacic2.dat  
236 - v_array_path_cacic := g_oCacic.explode(ExtractFilePath(ParamStr(0)),'\');  
237 - v_path_cacic := '';  
238 - For intAux := 0 to v_array_path_cacic.Count -2 do  
239 - v_path_cacic := v_path_cacic + v_array_path_cacic[intAux] + '\';  
240 -  
241 - g_oCacic.setCacicPath(v_path_cacic);  
242 - v_Debugs := false;  
243 - if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then  
244 - Begin  
245 - if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then  
246 - Begin  
247 - v_Debugs := true;  
248 - log_DEBUG('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');  
249 - End;  
250 - End;  
251 -  
252 - // A existência e bloqueio do arquivo abaixo evitará que Cacic2.exe chame o Ger_Cols quando a coleta ainda estiver sendo efetuada  
253 - AssignFile(v_Aguarde,g_oCacic.getCacicPath + 'temp\aguarde_INI.txt'); {Associa o arquivo a uma variável do tipo TextFile}  
254 - {$IOChecks off}  
255 - Reset(v_Aguarde); {Abre o arquivo texto}  
256 - {$IOChecks on}  
257 - if (IOResult <> 0) then // Arquivo não existe, será recriado.  
258 - Rewrite (v_Aguarde);  
259 -  
260 - Append(v_Aguarde);  
261 - Writeln(v_Aguarde,'Apenas um pseudo-cookie para o Cacic2 esperar o término de Ini_Cols');  
262 - Append(v_Aguarde);  
263 -  
264 - Matar(g_oCacic.getCacicPath+'temp\','*.dat');  
265 - Try  
266 - // Caso exista o Gerente de Coletas será verificada a versão...  
267 - // Devido a problemas na rotina de FTP na versão 2.0.1.2,  
268 - // que impossibilitava atualização de versões de todos os componentes, exceto INI_COLS  
269 - If (FileExists(g_oCacic.getCacicPath + 'modulos\ger_cols.exe')) Then 236 + if ParamCount > 0 then
  237 + Begin
  238 + strAux := '';
  239 + For intAux := 1 to ParamCount do
  240 + Begin
  241 + if LowerCase(Copy(ParamStr(intAux),1,11)) = '/cacicpath=' then
  242 + begin
  243 + strAux := Trim(Copy(ParamStr(intAux),12,Length((ParamStr(intAux)))));
  244 + log_DEBUG('Parâmetro /CacicPath recebido com valor="'+strAux+'"');
  245 + end;
  246 + end;
  247 +
  248 + if (strAux <> '') then
  249 + Begin
  250 + g_oCacic.setCacicPath(strAux);
  251 + v_Debugs := false;
  252 + if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then
270 Begin 253 Begin
271 - v_versao := trim(GetVersionInfo(g_oCacic.getCacicPath + 'modulos\ger_cols.exe'));  
272 - if (v_versao = '0.0.0.0') then // Provavelmente arquivo corrompido ou versão muito antiga  
273 - Begin  
274 - Matar(g_oCacic.getCacicPath+'modulos\','ger_cols.exe');  
275 - Sleep(5000); // Pausa 5 segundos para total exclusão de GER_COLS  
276 - CipherOpen(g_oCacic.getDatFileName);  
277 - v_te_senha_login_serv_updates := GetValorDatMemoria('Configs.te_senha_login_serv_updates');  
278 -  
279 - FTP(GetValorDatMemoria('Configs.te_serv_updates'),  
280 - GetValorDatMemoria('Configs.nu_porta_serv_updates'),  
281 - GetValorDatMemoria('Configs.nm_usuario_login_serv_updates'),  
282 - v_te_senha_login_serv_updates,  
283 - GetValorDatMemoria('Configs.te_path_serv_updates'),  
284 - 'ger_cols.exe',  
285 - g_oCacic.getCacicPath + 'modulos');  
286 -  
287 - // Pausa 5 segundos para total gravação de GER_COLS  
288 - Sleep(5000); 254 + if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then
  255 + Begin
  256 + v_Debugs := true;
  257 + log_DEBUG('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');
  258 + End;
  259 + End;
289 260
  261 + // A existência e bloqueio do arquivo abaixo evitará que Cacic2.exe chame o Ger_Cols quando a coleta ainda estiver sendo efetuada
  262 + AssignFile(v_Aguarde,g_oCacic.getCacicPath + 'temp\aguarde_INI.txt'); {Associa o arquivo a uma variável do tipo TextFile}
  263 + {$IOChecks off}
  264 + Reset(v_Aguarde); {Abre o arquivo texto}
  265 + {$IOChecks on}
  266 + if (IOResult <> 0) then // Arquivo não existe, será recriado.
  267 + Rewrite (v_Aguarde);
  268 +
  269 + Append(v_Aguarde);
  270 + Writeln(v_Aguarde,'Apenas um pseudo-cookie para o Cacic2 esperar o término de Ini_Cols');
  271 + Append(v_Aguarde);
  272 +
  273 + Matar(g_oCacic.getCacicPath+'temp\','*.dat');
  274 + Try
  275 + // Caso exista o Gerente de Coletas será verificada a versão...
  276 + // Devido a problemas na rotina de FTP na versão 2.0.1.2,
  277 + // que impossibilitava atualização de versões de todos os componentes, exceto INI_COLS
  278 + If (FileExists(g_oCacic.getCacicPath + 'modulos\ger_cols.exe')) Then
  279 + Begin
  280 + v_versao := trim(GetVersionInfo(g_oCacic.getCacicPath + 'modulos\ger_cols.exe'));
  281 + if (v_versao = '0.0.0.0') then // Provavelmente arquivo corrompido ou versão muito antiga
  282 + Begin
  283 + Matar(g_oCacic.getCacicPath+'modulos\','ger_cols.exe');
  284 + Sleep(5000); // Pausa 5 segundos para total exclusão de GER_COLS
  285 + CipherOpen(g_oCacic.getCacicPath + g_oCacic.getDatFileName);
  286 + v_te_senha_login_serv_updates := GetValorDatMemoria('Configs.te_senha_login_serv_updates');
  287 +
  288 + FTP(GetValorDatMemoria('Configs.te_serv_updates'),
  289 + GetValorDatMemoria('Configs.nu_porta_serv_updates'),
  290 + GetValorDatMemoria('Configs.nm_usuario_login_serv_updates'),
  291 + v_te_senha_login_serv_updates,
  292 + GetValorDatMemoria('Configs.te_path_serv_updates'),
  293 + 'ger_cols.exe',
  294 + g_oCacic.getCacicPath + 'modulos');
  295 +
  296 + // Pausa 5 segundos para total gravação de GER_COLS
  297 + Sleep(5000);
  298 +
  299 + End;
  300 + End;
  301 +
  302 + // Procuro pelo parâmetro p_ModulosOpcoes que deverá ter sido passado pelo Gerente de Coletas
  303 + // Contendo a formação: coletor1,wait#coletor2,nowait#coletorN,nowait#
  304 + // Observações:
  305 + // 1) Os valores "wait/nowait" determinam se o Inicializador de Coletas estará sujeito à tolerância de tempo para as coletas.
  306 + // 2) No caso de Coletor de Patrimônio, este depende de digitação e deverá trazer a opção "wait";
  307 + // 3) Ainda no caso de Coletor de Patrimônio, quando este for invocado através do menu, o Gerente de Coletas enviará a opção "user", ficando o parâmetro p_ModulosOpcoes = "col_patr,wait,user"
  308 + For intAux := 1 to ParamCount do
  309 + Begin
  310 + if LowerCase(Copy(ParamStr(intAux),1,17)) = '/p_modulosopcoes=' then
  311 + v_ModulosOpcoes := Trim(Copy(ParamStr(intAux),18,Length((ParamStr(intAux)))));
290 End; 312 End;
291 - End;  
292 313
293 - // Procuro pelo parâmetro p_ModulosOpcoes que deverá ter sido passado pelo Gerente de Coletas  
294 - // Contendo a formação: coletor1,wait#coletor2,nowait#coletorN,nowait#  
295 - // Observações:  
296 - // 1) Os valores "wait/nowait" determinam se o Inicializador de Coletas estará sujeito à tolerância de tempo para as coletas.  
297 - // 2) No caso de Coletor de Patrimônio, este depende de digitação e deverá trazer a opção "wait";  
298 - // 3) Ainda no caso de Coletor de Patrimônio, quando este for invocado através do menu, o Gerente de Coletas enviará a opção "user", ficando o parâmetro p_ModulosOpcoes = "col_patr,wait,user"  
299 - For intAux := 1 to ParamCount do  
300 - Begin  
301 - if LowerCase(Copy(ParamStr(intAux),1,17)) = '/p_modulosopcoes=' then  
302 - v_ModulosOpcoes := Trim(Copy(ParamStr(intAux),18,Length((ParamStr(intAux)))));  
303 - End;  
304 -  
305 - log_DEBUG('Parâmetro p_ModulosOpcoes recebido: '+v_ModulosOpcoes);  
306 - v_tstrModulosOpcoes := g_oCacic.explode(v_ModulosOpcoes,'#');  
307 -  
308 - // Tempo de tolerância para as coletas  
309 - v_Tolerancia := 5; // (minutos)  
310 -  
311 - For intAux := 0 to v_tstrModulosOpcoes.Count -1 do  
312 - Begin  
313 - v_tstrModuloOpcao := g_oCacic.explode(v_tstrModulosOpcoes[intAux],',');  
314 - v_Aux := v_tstrModuloOpcao[0]+'.exe /p_Option='+v_tstrModuloOpcao[2];  
315 - log_DEBUG('Chamando "' + v_tstrModuloOpcao[0]+'.exe " /p_Option='+v_tstrModuloOpcao[2]);  
316 -  
317 - g_oCacic.createSampleProcess( g_oCacic.getCacicPath + '\modulos\' + v_aux, CACIC_PROCESS_WAIT );  
318 -  
319 - End;  
320 - except  
321 - end; 314 + log_DEBUG('Parâmetro p_ModulosOpcoes recebido: '+v_ModulosOpcoes);
  315 + v_tstrModulosOpcoes := g_oCacic.explode(v_ModulosOpcoes,'#');
  316 +
  317 + // Tempo de tolerância para as coletas
  318 + v_Tolerancia := 5; // (minutos)
  319 +
  320 + For intAux := 0 to v_tstrModulosOpcoes.Count -1 do
  321 + Begin
  322 + v_tstrModuloOpcao := g_oCacic.explode(v_tstrModulosOpcoes[intAux],',');
  323 + strAux := v_tstrModuloOpcao[0]+'.exe /CacicPath='+g_oCacic.getCacicPath+' /p_Option='+v_tstrModuloOpcao[2];
  324 + log_DEBUG('Chamando "' + v_tstrModuloOpcao[0]+'.exe " /p_Option='+v_tstrModuloOpcao[2]);
  325 +
  326 + g_oCacic.createSampleProcess( g_oCacic.getCacicPath + '\modulos\' + strAux, CACIC_PROCESS_WAIT );
  327 + End;
  328 + except
  329 + end;
  330 + End;
322 End; 331 End;
323 g_oCacic.Free(); 332 g_oCacic.Free();
324 end. 333 end.
@@ -19,45 +19,53 @@ unit main; @@ -19,45 +19,53 @@ unit main;
19 19
20 interface 20 interface
21 21
22 -uses Windows,  
23 - Messages,  
24 - Forms,  
25 - Menus,  
26 - Classes,  
27 - SysUtils,  
28 - Controls,  
29 - StdCtrls,  
30 - ExtCtrls,  
31 - ShellAPI,  
32 - registry,  
33 - dialogs,  
34 - PJVersionInfo,  
35 - ComCtrls,  
36 - IdBaseComponent,  
37 - IdComponent,  
38 - Buttons,  
39 - CACIC_Library,  
40 - ImgList,  
41 - Graphics;  
42 - //IdTCPServer;  
43 - //IdFTPServer;  
44 -  
45 -const WM_MYMESSAGE = WM_USER+100; 22 +uses
  23 + Windows,
  24 + Messages,
  25 + Forms,
  26 + Menus,
  27 + Classes,
  28 + SysUtils,
  29 + Controls,
  30 + StdCtrls,
  31 + ExtCtrls,
  32 + ShellAPI,
  33 + registry,
  34 + dialogs,
  35 + PJVersionInfo,
  36 + ComCtrls,
  37 + IdBaseComponent,
  38 + IdComponent,
  39 + Buttons,
  40 + CACIC_Library,
  41 + ImgList,
  42 + Graphics;
  43 + //IdTCPServer;
  44 + //IdFTPServer;
  45 +
  46 +const
  47 + WM_MYMESSAGE = WM_USER+100;
46 48
47 // Declaração das variáveis globais. 49 // Declaração das variáveis globais.
48 -var p_Shell_Command,  
49 - p_Shell_Path,  
50 - v_versao,  
51 - v_DataCacic2DAT,  
52 - v_Tamanho_Arquivo,  
53 - strConfigsPatrimonio : string;  
54 - BatchFile : TStringList;  
55 - v_tstrCipherOpened : TStrings;  
56 - boolCrypt,  
57 - boolDebugs : Boolean; 50 +var
  51 + p_Shell_Command,
  52 + p_Shell_Path,
  53 + v_versao,
  54 + v_DataCacic2DAT,
  55 + v_Tamanho_Arquivo,
  56 + strConfigsPatrimonio : string;
  57 +
  58 +var
  59 + BatchFile : TStringList;
  60 +
  61 +var
  62 + v_tstrCipherOpened : TStrings;
  63 +
  64 +var
  65 + boolDebugs : Boolean;
58 66
59 var 67 var
60 - g_oCacic: TCACIC; 68 + g_oCacic: TCACIC;
61 69
62 type 70 type
63 TFormularioGeral = class(TForm) 71 TFormularioGeral = class(TForm)
@@ -218,7 +226,6 @@ type @@ -218,7 +226,6 @@ type
218 procedure WMMENUSELECT(var msg: TWMMENUSELECT); message WM_MENUSELECT; 226 procedure WMMENUSELECT(var msg: TWMMENUSELECT); message WM_MENUSELECT;
219 public 227 public
220 Function Implode(p_Array : TStrings ; p_Separador : String) : String; 228 Function Implode(p_Array : TStrings ; p_Separador : String) : String;
221 - function HomeDrive : string;  
222 function GetFolderDate(Folder: string): TDateTime; 229 function GetFolderDate(Folder: string): TDateTime;
223 Function CipherClose : String; 230 Function CipherClose : String;
224 Function CipherOpen : TStrings; 231 Function CipherOpen : TStrings;
@@ -516,14 +523,6 @@ Begin @@ -516,14 +523,6 @@ Begin
516 523
517 End; 524 End;
518 525
519 -  
520 -function TFormularioGeral.HomeDrive : string;  
521 -var  
522 -WinDir : array [0..144] of char;  
523 -begin  
524 -GetWindowsDirectory (WinDir, 144);  
525 -Result := StrPas (WinDir);  
526 -end;  
527 function TFormularioGeral.GetFolderDate(Folder: string): TDateTime; 526 function TFormularioGeral.GetFolderDate(Folder: string): TDateTime;
528 var 527 var
529 Rec: TSearchRec; 528 Rec: TSearchRec;
@@ -565,33 +564,33 @@ var v_DatFile : TextFile; @@ -565,33 +564,33 @@ var v_DatFile : TextFile;
565 v_strCipherClosed : string; 564 v_strCipherClosed : string;
566 begin 565 begin
567 566
568 - log_DEBUG('Fechando '+g_oCacic.getDatFileName); 567 + log_DEBUG('Fechando '+g_oCacic.getCacicPath + g_oCacic.getDatFileName);
569 if boolDebugs then 568 if boolDebugs then
570 for intAux := 0 to (v_tstrCipherOpened.Count-1) do 569 for intAux := 0 to (v_tstrCipherOpened.Count-1) do
571 log_DEBUG('Posição ['+inttostr(intAux)+']='+v_tstrCipherOpened[intAux]); 570 log_DEBUG('Posição ['+inttostr(intAux)+']='+v_tstrCipherOpened[intAux]);
572 571
573 try 572 try
574 - FileSetAttr (g_oCacic.getDatFileName,0); // Retira os atributos do arquivo para evitar o erro FILE ACCESS DENIED em máquinas 2000 573 + FileSetAttr (g_oCacic.getCacicPath + g_oCacic.getDatFileName,0); // Retira os atributos do arquivo para evitar o erro FILE ACCESS DENIED em máquinas 2000
575 574
576 - log_DEBUG('Localizando arquivo: '+g_oCacic.getDatFileName);  
577 - AssignFile(v_DatFile,g_oCacic.getDatFileName); {Associa o arquivo a uma variável do tipo TextFile} 575 + log_DEBUG('Localizando arquivo: '+g_oCacic.getCacicPath + g_oCacic.getDatFileName);
  576 + AssignFile(v_DatFile,g_oCacic.getCacicPath + g_oCacic.getDatFileName); {Associa o arquivo a uma variável do tipo TextFile}
578 {$IOChecks off} 577 {$IOChecks off}
579 - log_DEBUG('Abrindo arquivo: '+g_oCacic.getDatFileName); 578 + log_DEBUG('Abrindo arquivo: '+g_oCacic.getCacicPath + g_oCacic.getDatFileName);
580 ReWrite(v_DatFile); {Abre o arquivo texto} 579 ReWrite(v_DatFile); {Abre o arquivo texto}
581 {$IOChecks on} 580 {$IOChecks on}
582 - log_DEBUG('Append(2) no arquivo: '+g_oCacic.getDatFileName); 581 + log_DEBUG('Append(2) no arquivo: '+g_oCacic.getCacicPath + g_oCacic.getDatFileName);
583 Append(v_DatFile); 582 Append(v_DatFile);
584 log_DEBUG('Criando vetor para criptografia.'); 583 log_DEBUG('Criando vetor para criptografia.');
585 v_strCipherOpenImploded := Implode(v_tstrCipherOpened,g_oCacic.getSeparatorKey); 584 v_strCipherOpenImploded := Implode(v_tstrCipherOpened,g_oCacic.getSeparatorKey);
586 585
587 - log_DEBUG('Salvando a string "'+v_strCipherOpenImploded+'" em '+g_oCacic.getDatFileName); 586 + log_DEBUG('Salvando a string "'+v_strCipherOpenImploded+'" em '+g_oCacic.getCacicPath + g_oCacic.getDatFileName);
588 v_strCipherClosed := g_oCacic.enCrypt(v_strCipherOpenImploded); 587 v_strCipherClosed := g_oCacic.enCrypt(v_strCipherOpenImploded);
589 Writeln(v_DatFile,v_strCipherClosed); {Grava a string Texto no arquivo texto} 588 Writeln(v_DatFile,v_strCipherClosed); {Grava a string Texto no arquivo texto}
590 CloseFile(v_DatFile); 589 CloseFile(v_DatFile);
591 except 590 except
592 - log_diario('ERRO NA GRAVAÇÃO DO ARQUIVO DE CONFIGURAÇÕES.('+g_oCacic.getDatFileName+')'); 591 + log_diario('ERRO NA GRAVAÇÃO DO ARQUIVO DE CONFIGURAÇÕES.('+ g_oCacic.getCacicPath + g_oCacic.getDatFileName+')');
593 end; 592 end;
594 - log_DEBUG(g_oCacic.getDatFileName+' fechado com sucesso!'); 593 + log_DEBUG(g_oCacic.getCacicPath + g_oCacic.getDatFileName+' fechado com sucesso!');
595 end; 594 end;
596 595
597 function TFormularioGeral.Get_File_Size(sFileToExamine: string; bInKBytes: Boolean): string; 596 function TFormularioGeral.Get_File_Size(sFileToExamine: string; bInKBytes: Boolean): string;
@@ -619,22 +618,22 @@ var v_DatFile : TextFile; @@ -619,22 +618,22 @@ var v_DatFile : TextFile;
619 v_strCipherClosed : string; 618 v_strCipherClosed : string;
620 begin 619 begin
621 620
622 - if (v_DataCacic2DAT = '') or (v_DataCacic2DAT <> FormatDateTime('ddmmyyyyhhnnsszzz', GetFolderDate(g_oCacic.getCacicPath + 'cacic2.dat'))) then 621 + if (v_DataCacic2DAT = '') or (v_DataCacic2DAT <> FormatDateTime('ddmmyyyyhhnnsszzz', GetFolderDate(g_oCacic.getCacicPath + g_oCacic.getDatFileName))) then
623 Begin 622 Begin
624 - v_DataCacic2DAT := FormatDateTime('ddmmyyyyhhnnsszzz', GetFolderDate(g_oCacic.getCacicPath + 'cacic2.dat'));  
625 - log_DEBUG('Abrindo '+g_oCacic.getDatFileName +' - DateTime Cacic2.dat=> '+v_DataCacic2DAT); 623 + v_DataCacic2DAT := FormatDateTime('ddmmyyyyhhnnsszzz', GetFolderDate(g_oCacic.getCacicPath + g_oCacic.getDatFileName));
  624 + log_DEBUG('Abrindo '+g_oCacic.getCacicPath + g_oCacic.getDatFileName +' - DateTime '+g_oCacic.getCacicPath + g_oCacic.getDatFileName+' => '+v_DataCacic2DAT);
626 v_strCipherOpened := ''; 625 v_strCipherOpened := '';
627 626
628 - v_Tamanho_Arquivo := Get_File_Size(g_oCacic.getDatFileName,true); 627 + v_Tamanho_Arquivo := Get_File_Size(g_oCacic.getCacicPath + g_oCacic.getDatFileName,true);
629 628
630 if (v_Tamanho_Arquivo = '0') or 629 if (v_Tamanho_Arquivo = '0') or
631 - (v_Tamanho_Arquivo = '-1') then FormularioGeral.Matar(g_oCacic.getCacicPath,'cacic2.dat'); 630 + (v_Tamanho_Arquivo = '-1') then FormularioGeral.Matar(g_oCacic.getCacicPath,g_oCacic.getDatFileName);
632 631
633 - if FileExists(g_oCacic.getDatFileName) then 632 + if FileExists(g_oCacic.getCacicPath + g_oCacic.getDatFileName) then
634 begin 633 begin
635 - log_DEBUG(g_oCacic.getDatFileName+' já existe!');  
636 - AssignFile(v_DatFile,g_oCacic.getDatFileName);  
637 - log_DEBUG('Abrindo '+g_oCacic.getDatFileName); 634 + log_DEBUG(g_oCacic.getCacicPath + g_oCacic.getDatFileName+' já existe!');
  635 + AssignFile(v_DatFile,g_oCacic.getCacicPath + g_oCacic.getDatFileName);
  636 + log_DEBUG('Abrindo '+g_oCacic.getCacicPath + g_oCacic.getDatFileName);
638 637
639 {$IOChecks off} 638 {$IOChecks off}
640 Reset(v_DatFile); 639 Reset(v_DatFile);
@@ -643,19 +642,19 @@ begin @@ -643,19 +642,19 @@ begin
643 log_DEBUG('Verificação de Existência.'); 642 log_DEBUG('Verificação de Existência.');
644 if (IOResult <> 0)then // Arquivo não existe, será recriado. 643 if (IOResult <> 0)then // Arquivo não existe, será recriado.
645 begin 644 begin
646 - log_DEBUG('Recriando "'+g_oCacic.getDatFileName+'"'); 645 + log_DEBUG('Recriando "'+g_oCacic.getCacicPath + g_oCacic.getDatFileName+'"');
647 Rewrite (v_DatFile); 646 Rewrite (v_DatFile);
648 log_DEBUG('Inserindo Primeira Linha.'); 647 log_DEBUG('Inserindo Primeira Linha.');
649 Append(v_DatFile); 648 Append(v_DatFile);
650 end; 649 end;
651 650
652 - log_DEBUG('Lendo '+g_oCacic.getDatFileName); 651 + log_DEBUG('Lendo '+g_oCacic.getCacicPath + g_oCacic.getDatFileName);
653 652
654 Readln(v_DatFile,v_strCipherClosed); 653 Readln(v_DatFile,v_strCipherClosed);
655 654
656 log_DEBUG('Povoando Variável'); 655 log_DEBUG('Povoando Variável');
657 while not EOF(v_DatFile) do Readln(v_DatFile,v_strCipherClosed); 656 while not EOF(v_DatFile) do Readln(v_DatFile,v_strCipherClosed);
658 - log_DEBUG('Fechando '+g_oCacic.getDatFileName); 657 + log_DEBUG('Fechando '+g_oCacic.getCacicPath + g_oCacic.getDatFileName);
659 CloseFile(v_DatFile); 658 CloseFile(v_DatFile);
660 log_DEBUG('Chamando Criptografia de conteúdo'); 659 log_DEBUG('Chamando Criptografia de conteúdo');
661 v_strCipherOpened:= g_oCacic.deCrypt(v_strCipherClosed); 660 v_strCipherOpened:= g_oCacic.deCrypt(v_strCipherClosed);
@@ -666,7 +665,7 @@ begin @@ -666,7 +665,7 @@ begin
666 Begin 665 Begin
667 v_tstrCipherOpened := explode('Configs.ID_SO'+g_oCacic.getSeparatorKey+ g_oCacic.getWindowsStrId() +g_oCacic.getSeparatorKey+ 666 v_tstrCipherOpened := explode('Configs.ID_SO'+g_oCacic.getSeparatorKey+ g_oCacic.getWindowsStrId() +g_oCacic.getSeparatorKey+
668 'Configs.Endereco_WS'+g_oCacic.getSeparatorKey+'/cacic2/ws/',g_oCacic.getSeparatorKey); 667 'Configs.Endereco_WS'+g_oCacic.getSeparatorKey+'/cacic2/ws/',g_oCacic.getSeparatorKey);
669 - log_DEBUG(g_oCacic.getDatFileName+' Inexistente. Criado o DAT em memória.'); 668 + log_DEBUG(g_oCacic.getCacicPath + g_oCacic.getDatFileName+' Inexistente. Criado o DAT em memória.');
670 End; 669 End;
671 670
672 Result := v_tstrCipherOpened; 671 Result := v_tstrCipherOpened;
@@ -675,7 +674,7 @@ begin @@ -675,7 +674,7 @@ begin
675 Result.Add(''); 674 Result.Add('');
676 675
677 End 676 End
678 - else log_DEBUG('Cacic2.dat ainda não alterado! Não foi necessário reabrí-lo.'); 677 + else log_DEBUG(g_oCacic.getCacicPath + g_oCacic.getDatFileName + ' ainda não alterado! Não foi necessário reabrí-lo.');
679 end; 678 end;
680 679
681 Procedure TFormularioGeral.SetValorDatMemoria(p_Chave : string; p_Valor : String; p_tstrCipherOpened : TStrings); 680 Procedure TFormularioGeral.SetValorDatMemoria(p_Chave : string; p_Valor : String; p_tstrCipherOpened : TStrings);
@@ -818,8 +817,8 @@ Begin @@ -818,8 +817,8 @@ Begin
818 InicializaTray; 817 InicializaTray;
819 818
820 log_diario('Acionando recuperador de Módulo Gerente de Coletas.'); 819 log_diario('Acionando recuperador de Módulo Gerente de Coletas.');
821 - log_DEBUG('Recuperador de Módulo Gerente de Coletas: '+HomeDrive + '\chksis.exe');  
822 - WinExec(PChar(HomeDrive + '\chksis.exe'),SW_HIDE); 820 + log_DEBUG('Recuperador de Módulo Gerente de Coletas: '+g_oCacic.getWinDir + 'chksis.exe');
  821 + g_oCacic.createSampleProcess(g_oCacic.getWinDir + 'chksis.exe',false);
823 822
824 sleep(30000); // 30 segundos de espera para download do ger_cols.exe 823 sleep(30000); // 30 segundos de espera para download do ger_cols.exe
825 v_Tamanho_Arquivo := Get_File_Size(g_oCacic.getCacicPath + 'modulos\ger_cols.exe',true); 824 v_Tamanho_Arquivo := Get_File_Size(g_oCacic.getCacicPath + 'modulos\ger_cols.exe',true);
@@ -871,7 +870,7 @@ Begin @@ -871,7 +870,7 @@ Begin
871 // Verifico se o endereço do servidor do cacic foi configurado. 870 // Verifico se o endereço do servidor do cacic foi configurado.
872 if (GetValorDatMemoria('Configs.EnderecoServidor',v_tstrCipherOpened)='') then 871 if (GetValorDatMemoria('Configs.EnderecoServidor',v_tstrCipherOpened)='') then
873 Begin 872 Begin
874 - strAux := getValorChaveRegIni('Cacic2','ip_serv_cacic',HomeDrive + '\chksis.ini'); 873 + strAux := getValorChaveRegIni('Cacic2','ip_serv_cacic',g_oCacic.getWinDir + 'chksis.ini');
875 874
876 if (strAux='') then 875 if (strAux='') then
877 begin 876 begin
@@ -1048,8 +1047,6 @@ End; @@ -1048,8 +1047,6 @@ End;
1048 procedure TFormularioGeral.FormCreate(Sender: TObject); 1047 procedure TFormularioGeral.FormCreate(Sender: TObject);
1049 var strAux, 1048 var strAux,
1050 v_ip_serv_cacic, 1049 v_ip_serv_cacic,
1051 - v_cacic_dir,  
1052 - v_windir,  
1053 strFraseVersao : string; 1050 strFraseVersao : string;
1054 intAux : integer; 1051 intAux : integer;
1055 v_Aguarde : TextFile; 1052 v_Aguarde : TextFile;
@@ -1058,33 +1055,15 @@ begin @@ -1058,33 +1055,15 @@ begin
1058 // Não mostrar o formulário... 1055 // Não mostrar o formulário...
1059 Application.ShowMainForm:=false; 1056 Application.ShowMainForm:=false;
1060 g_oCacic := TCACIC.Create; 1057 g_oCacic := TCACIC.Create;
  1058 +
  1059 + g_oCacic.setBoolCipher(true);
  1060 +
1061 //g_oCacic.showTrayIcon(false); 1061 //g_oCacic.showTrayIcon(false);
1062 - boolCrypt := true; 1062 +
1063 1063
1064 Try 1064 Try
1065 - // De acordo com a versão do OS, determino o ShellCommand para chamadas externas.  
1066 - if (g_oCacic.isWindowsNTPlataform()) then //Se NT/2K/XP... then  
1067 - Begin  
1068 - p_Shell_Path := HomeDrive + '\system32\'; //NT/2K/XP  
1069 - p_Shell_Command := 'cmd.exe'; //NT/2K/XP  
1070 - strAux := HomeDrive + '\'; //Ex.: c:\windows\  
1071 - End  
1072 - else  
1073 - Begin  
1074 - v_windir := GetEnvironmentVariable('windir');  
1075 - if (trim(v_windir) <> '') then v_windir := v_windir + '\';  
1076 - p_Shell_Path := v_windir;  
1077 - p_Shell_Command := 'command.com';  
1078 - strAux := GetEnvironmentVariable('windir') + '\'; //Ex.: c:\windows\  
1079 - End;  
1080 - v_SystemDrive := explode(strAux,'\');  
1081 - v_cacic_dir := v_SystemDrive[0] + '\' + getValorChaveRegIni('Cacic2','cacic_dir',strAux + 'chksis.ini') + '\';  
1082 1065
1083 - // Caminho do aplicativo  
1084 - if (v_cacic_dir <> '') then  
1085 - g_oCacic.setCacicPath(v_cacic_dir)  
1086 - else  
1087 - g_oCacic.setCacicPath(ExtractFilePath(Application.Exename)) ; 1066 + g_oCacic.setCacicPath(getValorChaveRegIni('Cacic2','cacic_dir',g_oCacic.getWinDir + 'chksis.ini')) ;
1088 1067
1089 if not DirectoryExists(g_oCacic.getCacicPath + 'Temp') then 1068 if not DirectoryExists(g_oCacic.getCacicPath + 'Temp') then
1090 begin 1069 begin
@@ -1281,7 +1260,7 @@ begin @@ -1281,7 +1260,7 @@ begin
1281 begin 1260 begin
1282 DateTimeToString(strDataArqLocal, 'yyyymmdd', FileDateToDateTime(Fileage(g_oCacic.getCacicPath + 'cacic2.log'))); 1261 DateTimeToString(strDataArqLocal, 'yyyymmdd', FileDateToDateTime(Fileage(g_oCacic.getCacicPath + 'cacic2.log')));
1283 DateTimeToString(strDataAtual , 'yyyymmdd', Date); 1262 DateTimeToString(strDataAtual , 'yyyymmdd', Date);
1284 - if (strDataAtual <> strDataArqLocal) then // Se o arquivo INI não é da data atual... 1263 + if (strDataAtual <> strDataArqLocal) then // Se o arquivo LOG não é da data atual...
1285 begin 1264 begin
1286 Rewrite (HistoricoLog); //Cria/Recria o arquivo 1265 Rewrite (HistoricoLog); //Cria/Recria o arquivo
1287 Append(HistoricoLog); 1266 Append(HistoricoLog);
@@ -1291,8 +1270,8 @@ begin @@ -1291,8 +1270,8 @@ begin
1291 Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now)+ '[Agente Principal] '+strMsg); {Grava a string Texto no arquivo texto} 1270 Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now)+ '[Agente Principal] '+strMsg); {Grava a string Texto no arquivo texto}
1292 CloseFile(HistoricoLog); {Fecha o arquivo texto} 1271 CloseFile(HistoricoLog); {Fecha o arquivo texto}
1293 end 1272 end
1294 - else CloseFile(HistoricoLog);;  
1295 - 1273 + else
  1274 + CloseFile(HistoricoLog);
1296 except 1275 except
1297 log_diario('PROBLEMAS NA CRIAÇÃO DO ARQUIVO LOG'); 1276 log_diario('PROBLEMAS NA CRIAÇÃO DO ARQUIVO LOG');
1298 end; 1277 end;
@@ -1307,7 +1286,7 @@ Begin @@ -1307,7 +1286,7 @@ Begin
1307 Except 1286 Except
1308 log_diario('PROBLEMAS NA FINALIZAÇÃO'); 1287 log_diario('PROBLEMAS NA FINALIZAÇÃO');
1309 End; 1288 End;
1310 - g_oCacic.Free(); 1289 + g_oCacic.Free;
1311 FreeMemory(0); 1290 FreeMemory(0);
1312 Application.Terminate; 1291 Application.Terminate;
1313 End; 1292 End;
@@ -1332,7 +1311,7 @@ begin @@ -1332,7 +1311,7 @@ begin
1332 CipherClose; 1311 CipherClose;
1333 log_diario('Invocando Gerente de Coletas com ação: "'+p_acao+'"'); 1312 log_diario('Invocando Gerente de Coletas com ação: "'+p_acao+'"');
1334 Timer_Nu_Exec_Apos.Enabled := False; 1313 Timer_Nu_Exec_Apos.Enabled := False;
1335 - WinExec(PChar(g_oCacic.getCacicPath + 'modulos\GER_COLS.EXE /'+p_acao+' /p_CipherKey='+g_oCacic.getCipherKey),SW_HIDE); 1314 + g_oCacic.createSampleProcess(g_oCacic.getCacicPath + 'modulos\GER_COLS.EXE /'+p_acao+' /CacicPath='+g_oCacic.getCacicPath,false);
1336 End 1315 End
1337 else 1316 else
1338 log_diario('Não foi possível invocar o Gerente de Coletas!'); 1317 log_diario('Não foi possível invocar o Gerente de Coletas!');
@@ -2185,15 +2164,13 @@ begin @@ -2185,15 +2164,13 @@ begin
2185 if boolServerON then // Ordeno ao SrCACICsrv que auto-finalize 2164 if boolServerON then // Ordeno ao SrCACICsrv que auto-finalize
2186 Begin 2165 Begin
2187 Log_Diario('Desativando Suporte Remoto Seguro.'); 2166 Log_Diario('Desativando Suporte Remoto Seguro.');
2188 - WinExec(PChar(g_oCacic.getCacicPath + 'modulos\srcacicsrv.exe -kill'),SW_HIDE); 2167 + g_oCacic.createSampleProcess(g_oCacic.getCacicPath + 'modulos\srcacicsrv.exe -kill',false);
2189 boolServerON := false; 2168 boolServerON := false;
2190 End 2169 End
2191 else 2170 else
2192 Begin 2171 Begin
2193 log_DEBUG('Invocando "'+g_oCacic.getCacicPath + 'modulos\srcacicsrv.exe"...'); 2172 log_DEBUG('Invocando "'+g_oCacic.getCacicPath + 'modulos\srcacicsrv.exe"...');
2194 Log_Diario('Ativando Suporte Remoto Seguro.'); 2173 Log_Diario('Ativando Suporte Remoto Seguro.');
2195 - boolAux := boolCrypt;  
2196 - boolCrypt := true;  
2197 2174
2198 // Alguns cuidados necessários ao tráfego e recepção de valores pelo Gerente WEB 2175 // Alguns cuidados necessários ao tráfego e recepção de valores pelo Gerente WEB
2199 // Some cares about send and receive at Gerente WEB 2176 // Some cares about send and receive at Gerente WEB
@@ -2236,15 +2213,13 @@ begin @@ -2236,15 +2213,13 @@ begin
2236 CloseFile(fileAguarde); 2213 CloseFile(fileAguarde);
2237 Finally 2214 Finally
2238 End; 2215 End;
  2216 + g_oCacic.createSampleProcess(g_oCacic.getCacicPath + 'modulos\srcacicsrv.exe -start [' + g_oCacic.enCrypt(FormularioGeral.getValorDatMemoria('Configs.EnderecoServidor', v_tstrCipherOpened)) + ']' +
  2217 + '[' + g_oCacic.enCrypt(FormularioGeral.getValorDatMemoria('Configs.Endereco_WS' , v_tstrCipherOpened)) + ']' +
  2218 + '[' + strTeSO + ']' +
  2219 + '[' + strTeNodeAddress + ']' +
  2220 + '[' + strPalavraChave + ']' +
  2221 + '[' + g_oCacic.getCacicPath + 'Temp\' + ']',false);
2239 2222
2240 - WinExec(PChar(g_oCacic.getCacicPath + 'modulos\srcacicsrv.exe -start [' + g_oCacic.enCrypt(FormularioGeral.getValorDatMemoria('Configs.EnderecoServidor', v_tstrCipherOpened)) + ']' +  
2241 - '[' + g_oCacic.enCrypt(FormularioGeral.getValorDatMemoria('Configs.Endereco_WS' , v_tstrCipherOpened)) + ']' +  
2242 - '[' + strTeSO + ']' +  
2243 - '[' + strTeNodeAddress + ']' +  
2244 - '[' + strPalavraChave + ']' +  
2245 - '[' + g_oCacic.getCacicPath + 'Temp\aguarde_srCACIC.txt' + ']'),SW_NORMAL);  
2246 -  
2247 - boolCrypt := boolAux;  
2248 BoolServerON := true; 2223 BoolServerON := true;
2249 End; 2224 End;
2250 2225
mapa/main_mapa.pas
@@ -1467,6 +1467,8 @@ var intAux : integer; @@ -1467,6 +1467,8 @@ var intAux : integer;
1467 Request_mapa : TStringList; 1467 Request_mapa : TStringList;
1468 begin 1468 begin
1469 g_oCacic := TCACIC.Create(); 1469 g_oCacic := TCACIC.Create();
  1470 +
  1471 + g_oCacic.setBoolCipher(true);
1470 frmMapaCacic.lbVersao.Caption := 'Versão: ' + frmMapaCacic.GetVersionInfo(ParamStr(0)); 1472 frmMapaCacic.lbVersao.Caption := 'Versão: ' + frmMapaCacic.GetVersionInfo(ParamStr(0));
1471 log_DEBUG('Versão do MapaCacic: '+frmMapaCacic.lbVersao.Caption); 1473 log_DEBUG('Versão do MapaCacic: '+frmMapaCacic.lbVersao.Caption);
1472 if (g_oCacic.isWindowsNTPlataform()) and (not g_oCacic.isWindowsAdmin()) then 1474 if (g_oCacic.isWindowsNTPlataform()) and (not g_oCacic.isWindowsAdmin()) then