Commit c52c6d6f1d935a9293aa44ff1147e51d4770f99e
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
Showing
11 changed files
with
666 additions
and
563 deletions
Show diff stats
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; |
cacic2.dpr
| @@ -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. |
main.pas
| @@ -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 |