Commit 5906e45e654c496a800950a6c3e1efcec2fc4cce

Authored by anderson.peterle@previdencia.gov.br
1 parent 6af8aaac
Exists in master

Adequacoes ao uso de library unica, para reaproveitamento de codigos, propriedad…

…es e metodos, faxina de codigo.

git-svn-id: http://svn.softwarepublico.gov.br/svn/cacic/cacic/trunk/agente-windows@765 fecfc0c7-e812-0410-ae72-849f08638ee7
CACIC_Library.pas
... ... @@ -46,9 +46,15 @@ unit CACIC_Library;
46 46  
47 47 interface
48 48  
49   -uses
50   - Windows, SysUtils, StrUtils, md5;
51   -
  49 +uses
  50 + Windows,
  51 + Classes,
  52 + SysUtils,
  53 + StrUtils,
  54 + MD5,
  55 + DCPcrypt2,
  56 + DCPrijndael,
  57 + DCPbase64;
52 58 type
53 59  
54 60 { ------------------------------------------------------------------------------
... ... @@ -84,19 +90,20 @@ type
84 90 g_osVersionInfoExtended: boolean;
85 91  
86 92 public
87   - function isWindowsVista() : boolean;
88   - function isWindowsGEVista() : boolean;
89   - function isWindowsXP() : boolean;
90   - function isWindowsGEXP() : boolean;
91   - function isWindowsNTPlataform() : boolean;
92   - function isWindows2000() : boolean;
93   - function isWindowsNT() : boolean;
94   - function isWindows9xME() : boolean;
95   - function getWindowsStrId() : string;
96   - function isWindowsAdmin(): Boolean;
97   - function createSampleProcess(p_cmd: string; p_wait: boolean ): boolean;
  93 + function isWindowsVista() : boolean;
  94 + function isWindowsGEVista() : boolean;
  95 + function isWindowsXP() : boolean;
  96 + function isWindowsGEXP() : boolean;
  97 + function isWindowsNTPlataform() : boolean;
  98 + function isWindows2000() : boolean;
  99 + function isWindowsNT() : boolean;
  100 + function isWindows9xME() : boolean;
  101 + function getWindowsStrId() : string;
  102 + function getWinDir() : string;
  103 + function getHomeDrive : string;
  104 + function isWindowsAdmin() : boolean;
  105 + function createSampleProcess(p_cmd: string; p_wait: boolean ) : boolean;
98 106 procedure showTrayIcon(p_visible:boolean);
99   - function GetFileHash(strFileName : String) : String;
100 107 end;
101 108  
102 109 {*------------------------------------------------------------------------------
... ... @@ -128,16 +135,49 @@ type
128 135  
129 136 public
130 137 Windows : TCACIC_Windows; /// objeto de informacoes de windows
131   - Debug : TCACIC_Debug; /// objeto de tratamento de debug
  138 + Debug : TCACIC_Debug; /// objeto de tratamento de debug
132 139 procedure setCacicPath(p_cacic_path: string);
133   - function getCacicPath(): string;
134   - function trimEspacosExcedentes(p_str: string): string;
135   - function isAppRunning( p_app_name: PAnsiChar ): boolean;
  140 + function deCrypt(p_Data : String) : String;
  141 + function enCrypt(p_Data : String) : String;
  142 + function explode(p_String, p_Separador : String) : TStrings;
  143 + function implode(p_Array : TStrings ; p_Separador : String) : String;
  144 + function getCacicPath() : String;
  145 + function getCipherKey() : String;
  146 + function getIV() : String;
  147 + function getKeySize() : integer;
  148 + function getBlockSize() : integer;
  149 + function getDatFileName() : String;
  150 + function getSeparatorKey() : String;
  151 + function getFileHash(strFileName : String) : String;
  152 + function isAppRunning( p_app_name: PAnsiChar ) : boolean;
  153 + function padWithZeros(const str : string; size : integer) : String;
  154 + function trimEspacosExcedentes(p_str: string) : String;
  155 +
136 156 end;
137 157  
138 158 // Declaração de constantes para a biblioteca
139   -const CACIC_PROCESS_WAIT = true; // aguardar fim do processo
140   -const CACIC_PROCESS_NOWAIT = false; // não aguardar o fim do processo
  159 +const
  160 + CACIC_PROCESS_WAIT = true; // aguardar fim do processo
  161 + CACIC_PROCESS_NOWAIT = false; // não aguardar o fim do processo
  162 +
  163 +// Some constants that are dependant on the cipher being used
  164 +// Assuming MCRYPT_RIJNDAEL_128 (i.e., 128bit blocksize, 256bit keysize)
  165 +const
  166 + CACIC_KEYSIZE = 32; // 32 bytes = 256 bits
  167 + CACIC_BLOCKSIZE = 16; // 16 bytes = 128 bits
  168 +
  169 +// Chave AES. Recomenda-se que cada empresa altere a sua chave.
  170 +// Esta chave é passada como parâmetro para o Gerente de Coletas que, por sua vez,
  171 +// passa para o Inicializador de Coletas e este passa para os coletores...
  172 +const
  173 + CACIC_CIPHERKEY = 'CacicBrasil';
  174 + CACIC_IV = 'abcdefghijklmnop';
  175 + CACIC_SEPARATORKEY = '=CacicIsFree='; // Usada apenas para o cacic2.dat
  176 +
  177 +// Arquivo local para armazenamento de configurações e informações coletadas
  178 +const
  179 + CACIC_DATFILENAME = 'cacic2.dat';
  180 +
141 181 var
142 182 P_OSVersionInfo: POSVersionInfo;
143 183  
... ... @@ -178,6 +218,80 @@ begin
178 218 end;
179 219  
180 220 {*------------------------------------------------------------------------------
  221 + Retorna a pasta de instalação do MS-Windows
  222 +-------------------------------------------------------------------------------}
  223 +function TCACIC_Windows.getWinDir : string;
  224 +var
  225 + WinPath: array[0..MAX_PATH + 1] of char;
  226 +begin
  227 + GetWindowsDirectory(WinPath,MAX_PATH);
  228 + Result := StrPas(WinPath)+'\';
  229 +end;
  230 +
  231 +{*------------------------------------------------------------------------------
  232 + Retorna a unidade de instalação do MS-Windows
  233 +-------------------------------------------------------------------------------}
  234 +function TCACIC_Windows.getHomeDrive : string;
  235 +begin
  236 + Result := MidStr(getWinDir,1,3); //x:\
  237 +end;
  238 +
  239 +{*------------------------------------------------------------------------------
  240 + Retorna array de elementos com base em separador
  241 +
  242 + @param p_String String contendo campos e valores separados por caracter ou string
  243 + @param p_Separador String separadora de campos e valores
  244 +-------------------------------------------------------------------------------}
  245 +Function TCACIC.explode(p_String, p_Separador : String) : TStrings;
  246 +var
  247 + strItem : String;
  248 + ListaAuxUTILS : TStrings;
  249 + NumCaracteres,
  250 + TamanhoSeparador,
  251 + I : Integer;
  252 +Begin
  253 + ListaAuxUTILS := TStringList.Create;
  254 + strItem := '';
  255 + NumCaracteres := Length(p_String);
  256 + TamanhoSeparador := Length(p_Separador);
  257 + I := 1;
  258 + While I <= NumCaracteres Do
  259 + Begin
  260 + If (Copy(p_String,I,TamanhoSeparador) = p_Separador) or (I = NumCaracteres) Then
  261 + Begin
  262 + if (I = NumCaracteres) then strItem := strItem + p_String[I];
  263 + ListaAuxUTILS.Add(trim(strItem));
  264 + strItem := '';
  265 + I := I + (TamanhoSeparador-1);
  266 + end
  267 + Else
  268 + strItem := strItem + p_String[I];
  269 +
  270 + I := I + 1;
  271 + End;
  272 + Explode := ListaAuxUTILS;
  273 +end;
  274 +
  275 +{*------------------------------------------------------------------------------
  276 + Retorna string com campos e valores separados por caracter ou string
  277 +
  278 + @param p_Array Array contendo campos e valores
  279 + @param p_Separador String separadora de campos e valores
  280 +-------------------------------------------------------------------------------}
  281 +Function TCACIC.implode(p_Array : TStrings ; p_Separador : String) : String;
  282 +var intAux : integer;
  283 + strAux : string;
  284 +Begin
  285 + strAux := '';
  286 + For intAux := 0 To p_Array.Count -1 do
  287 + Begin
  288 + if (strAux<>'') then strAux := strAux + p_Separador;
  289 + strAux := strAux + p_Array[intAux];
  290 + End;
  291 + Implode := strAux;
  292 +end;
  293 +
  294 +{*------------------------------------------------------------------------------
181 295 Elimina espacos excedentes na string
182 296  
183 297 @param p_str String a excluir espacos
... ... @@ -537,7 +651,7 @@ end;
537 651 @autor: Anderson Peterle
538 652 @param p_strFileName - Nome do arquivo para extração do HashCode
539 653 -------------------------------------------------------------------------------}
540   -function TCACIC_Windows.GetFileHash(strFileName : String) : String;
  654 +function TCACIC.GetFileHash(strFileName : String) : String;
541 655 Begin
542 656 Result := 'Arquivo "'+strFileName+'" Inexistente!';
543 657 if (FileExists(strFileName)) then
... ... @@ -575,4 +689,149 @@ procedure TCACIC_Windows.showTrayIcon(p_visible:boolean);
575 689 End;
576 690 End;
577 691  
  692 +{*------------------------------------------------------------------------------
  693 + Obter a chave para criptografia simétrica
  694 +
  695 + @return String contendo a chave simétrica
  696 +-------------------------------------------------------------------------------}
  697 +function TCACIC.getCipherKey(): string;
  698 +begin
  699 + Result := CACIC_CIPHERKEY;
  700 +end;
  701 +
  702 +{*------------------------------------------------------------------------------
  703 + Obter o vetor de inicialização para criptografia
  704 +
  705 + @return String contendo o vetor de inicialização
  706 +-------------------------------------------------------------------------------}
  707 +function TCACIC.getIV(): string;
  708 +begin
  709 + Result := CACIC_IV;
  710 +end;
  711 +
  712 +{*------------------------------------------------------------------------------
  713 + Obter o valor para tamanho da chave de criptografia
  714 +
  715 + @return Integer contendo o tamanho para chave de criptografia
  716 +-------------------------------------------------------------------------------}
  717 +function TCACIC.getKeySize(): Integer;
  718 +begin
  719 + Result := CACIC_KEYSIZE;
  720 +end;
  721 +
  722 +{*------------------------------------------------------------------------------
  723 + Obter o valor para tamanho do bloco de criptografia
  724 +
  725 + @return Integer contendo o tamanho para bloco de criptografia
  726 +-------------------------------------------------------------------------------}
  727 +function TCACIC.getBlockSize(): Integer;
  728 +begin
  729 + Result := CACIC_BLOCKSIZE;
  730 +end;
  731 +
  732 +{*------------------------------------------------------------------------------
  733 + Obter o nome do arquivo de informações de configurações e dados locais
  734 +
  735 + @return String contendo o nome do arquivo de configurações e dados locais
  736 +-------------------------------------------------------------------------------}
  737 +function TCACIC.getDatFileName(): string;
  738 +begin
  739 + Result := CACIC_DATFILENAME;
  740 +end;
  741 +
  742 +{*------------------------------------------------------------------------------
  743 + Obter o separador para criação de listas locais
  744 +
  745 + @return String contendo o separador de campos e valores
  746 +-------------------------------------------------------------------------------}
  747 +function TCACIC.getSeparatorKey(): string;
  748 +begin
  749 + Result := CACIC_SEPARATORKEY;
  750 +end;
  751 +
  752 +// Encrypt a string and return the Base64 encoded result
  753 +function TCACIC.enCrypt(p_Data : String) : String;
  754 +var
  755 + l_Cipher : TDCP_rijndael;
  756 + l_Data, l_Key, l_IV : string;
  757 +begin
  758 + 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 + Except
  783 +// LogDiario('Erro no Processo de Criptografia');
  784 + End;
  785 +end;
  786 +
  787 +function TCACIC.deCrypt(p_Data : String) : String;
  788 +var
  789 + l_Cipher : TDCP_rijndael;
  790 + l_Data, l_Key, l_IV : string;
  791 +begin
  792 + 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;
  818 + Except
  819 +// LogDiario('Erro no Processo de Decriptografia');
  820 + End;
  821 +end;
  822 +
  823 +// Pad a string with zeros so that it is a multiple of size
  824 +function TCACIC.padWithZeros(const str : string; size : integer) : string;
  825 +var origsize, i : integer;
  826 +begin
  827 + Result := str;
  828 + origsize := Length(Result);
  829 + if ((origsize mod size) <> 0) or (origsize = 0) then
  830 + begin
  831 + SetLength(Result,((origsize div size)+1)*size);
  832 + for i := origsize+1 to Length(Result) do
  833 + Result[i] := #0;
  834 + end;
  835 +end;
  836 +
578 837 end.
... ...
main.pas
... ... @@ -32,9 +32,6 @@ uses Windows,
32 32 registry,
33 33 dialogs,
34 34 PJVersionInfo,
35   - DCPcrypt2,
36   - DCPrijndael,
37   - DCPbase64,
38 35 ComCtrls,
39 36 IdBaseComponent,
40 37 IdComponent,
... ... @@ -48,16 +45,9 @@ uses Windows,
48 45 const WM_MYMESSAGE = WM_USER+100;
49 46  
50 47 // Declaração das variáveis globais.
51   -var p_path_cacic,
52   - p_path_cacic_ini,
53   - p_Shell_Command,
  48 +var p_Shell_Command,
54 49 p_Shell_Path,
55 50 v_versao,
56   - g_te_so,
57   - v_CipherKey,
58   - v_SeparatorKey,
59   - v_IV,
60   - v_DatFileName,
61 51 v_DataCacic2DAT,
62 52 v_Tamanho_Arquivo,
63 53 strConfigsPatrimonio : string;
... ... @@ -235,9 +225,6 @@ type
235 225 Function Explode(Texto, Separador : String) : TStrings;
236 226 Function GetValorDatMemoria(p_Chave : String; p_tstrCipherOpened : TStrings) : String;
237 227 Procedure SetValorDatMemoria(p_Chave : string; p_Valor : String; p_tstrCipherOpened : TStrings);
238   - function PadWithZeros(const str : string; size : integer) : string;
239   - function EnCrypt(p_Data : String) : String;
240   - function DeCrypt(p_Data : String) : String;
241 228 function URLDecode(const S: string): string;
242 229 Function XML_RetornaValor(Tag : String; Fonte : String): String;
243 230 end;
... ... @@ -245,11 +232,6 @@ type
245 232 var FormularioGeral : TFormularioGeral;
246 233 boolServerON : Boolean;
247 234  
248   -// Some constants that are dependant on the cipher being used
249   -// Assuming MCRYPT_RIJNDAEL_128 (i.e., 128bit blocksize, 256bit keysize)
250   -const KeySize = 32; // 32 bytes = 256 bits
251   - BlockSize = 16; // 16 bytes = 128 bits
252   -
253 235 implementation
254 236  
255 237  
... ... @@ -287,20 +269,6 @@ var VetorUON1 : TVetorUON1;
287 269 VetorUON1a : TVetorUON1a;
288 270 VetorUON2 : TVetorUON2;
289 271  
290   -// Pad a string with zeros so that it is a multiple of size
291   -function TFormularioGeral.PadWithZeros(const str : string; size : integer) : string;
292   -var
293   - origsize, i : integer;
294   -begin
295   - Result := str;
296   - origsize := Length(Result);
297   - if ((origsize mod size) <> 0) or (origsize = 0) then
298   - begin
299   - SetLength(Result,((origsize div size)+1)*size);
300   - for i := origsize+1 to Length(Result) do
301   - Result[i] := #0;
302   - end;
303   -end;
304 272 Function TFormularioGeral.RetornaValorVetorUON1(id1 : string) : String;
305 273 var I : Integer;
306 274 begin
... ... @@ -355,7 +323,7 @@ begin
355 323 strTagName := ''
356 324 else if (Parser.CurPartType in [ptContent, ptCData]) and (strTagName='IT1')Then
357 325 Begin
358   - strAux1 := DeCrypt(Parser.CurContent);
  326 + strAux1 := g_oCacic.deCrypt(Parser.CurContent);
359 327 if (strItemName = 'ID1') then
360 328 Begin
361 329 VetorUON1[i].id1 := strAux1;
... ... @@ -387,7 +355,7 @@ begin
387 355 strTagName := ''
388 356 else if (Parser.CurPartType in [ptContent, ptCData]) and (strTagName='IT1A')Then
389 357 Begin
390   - strAux1 := DeCrypt(Parser.CurContent);
  358 + strAux1 := g_oCacic.deCrypt(Parser.CurContent);
391 359 if (strItemName = 'ID1') then
392 360 Begin
393 361 VetorUON1a[i].id1 := strAux1;
... ... @@ -433,7 +401,7 @@ begin
433 401 strTagName := ''
434 402 else if (Parser.CurPartType in [ptContent, ptCData]) and (strTagName='IT2')Then
435 403 Begin
436   - strAux1 := DeCrypt(Parser.CurContent);
  404 + strAux1 := g_oCacic.deCrypt(Parser.CurContent);
437 405 if (strItemName = 'ID1A') then
438 406 Begin
439 407 VetorUON2[i].id1a := strAux1;
... ... @@ -460,89 +428,6 @@ begin
460 428 Parser.Free;
461 429 end;
462 430  
463   -// Encrypt a string and return the Base64 encoded result
464   -function TFormularioGeral.EnCrypt(p_Data : String) : String;
465   -var
466   - l_Cipher : TDCP_rijndael;
467   - l_Data, l_Key, l_IV : string;
468   -begin
469   - if boolCrypt then
470   - Begin
471   - Try
472   - // Pad Key, IV and Data with zeros as appropriate
473   - l_Key := PadWithZeros(v_CipherKey,KeySize);
474   - log_DEBUG('Encrypt: l_Key => "'+l_Key+'"');
475   - l_IV := PadWithZeros(v_IV,BlockSize);
476   - log_DEBUG('Encrypt: l_IV => "'+l_IV+'"');
477   - l_Data := PadWithZeros(p_Data,BlockSize);
478   - log_DEBUG('Encrypt: l_Data antes CBC => "'+l_Data+'"');
479   - // Create the cipher and initialise according to the key length
480   - l_Cipher := TDCP_rijndael.Create(nil);
481   - if Length(v_CipherKey) <= 16 then
482   - l_Cipher.Init(l_Key[1],128,@l_IV[1])
483   - else if Length(v_CipherKey) <= 24 then
484   - l_Cipher.Init(l_Key[1],192,@l_IV[1])
485   - else
486   - l_Cipher.Init(l_Key[1],256,@l_IV[1]);
487   -
488   - // Encrypt the data
489   - l_Cipher.EncryptCBC(l_Data[1],l_Data[1],Length(l_Data));
490   - log_DEBUG('Encrypt: l_Data após CBC e Antes do Base64Encode=> "'+l_Data+'"');
491   - // Free the cipher and clear sensitive information
492   - l_Cipher.Free;
493   - FillChar(l_Key[1],Length(l_Key),0);
494   -
495   - // Return the Base64 encoded result
496   - Result := Base64EncodeStr(l_Data);
497   - log_DEBUG('Encrypt: l_Data após Base64Encode=> "'+l_Data+'"');
498   - Except
499   - log_diario('Erro no Processo de Criptografia');
500   - End;
501   - End
502   - else
503   - Result := p_Data;
504   -end;
505   -
506   -function TFormularioGeral.DeCrypt(p_Data : String) : String;
507   -var
508   - l_Cipher : TDCP_rijndael;
509   - l_Data, l_Key, l_IV : string;
510   -begin
511   - if boolCrypt then
512   - Begin
513   - Try
514   - // Pad Key and IV with zeros as appropriate
515   - l_Key := PadWithZeros(v_CipherKey,KeySize);
516   - l_IV := PadWithZeros(v_IV,BlockSize);
517   -
518   - // Decode the Base64 encoded string
519   - l_Data := Base64DecodeStr(p_Data);
520   -
521   - // Create the cipher and initialise according to the key length
522   - l_Cipher := TDCP_rijndael.Create(nil);
523   - if Length(v_CipherKey) <= 16 then
524   - l_Cipher.Init(l_Key[1],128,@l_IV[1])
525   - else if Length(v_CipherKey) <= 24 then
526   - l_Cipher.Init(l_Key[1],192,@l_IV[1])
527   - else
528   - l_Cipher.Init(l_Key[1],256,@l_IV[1]);
529   -
530   - // Decrypt the data
531   - l_Cipher.DecryptCBC(l_Data[1],l_Data[1],Length(l_Data));
532   -
533   - // Free the cipher and clear sensitive information
534   - l_Cipher.Free;
535   - FillChar(l_Key[1],Length(l_Key),0);
536   -
537   - // Return the result
538   - Result := trim(RemoveZerosFimString(l_Data));
539   - Except
540   - log_diario('Erro no Processo de Decriptografia');
541   - End;
542   - End
543   - else
544   - Result := p_Data;
545   -end;
546 431  
547 432 function Pode_Coletar : boolean;
548 433 var v_JANELAS_EXCECAO, v_plural1, v_plural2 : string;
... ... @@ -551,15 +436,15 @@ var v_JANELAS_EXCECAO, v_plural1, v_plural2 : string;
551 436 v_contador, intContaJANELAS, intAux : integer;
552 437 Begin
553 438 // Se eu conseguir matar o arquivo abaixo é porque Ger_Cols e Ini_Cols já finalizaram suas atividades...
554   - FormularioGeral.Matar(p_path_cacic+'temp\','aguarde_SRCACIC.txt');
555   - FormularioGeral.Matar(p_path_cacic+'temp\','aguarde_GER.txt');
556   - FormularioGeral.Matar(p_path_cacic+'temp\','aguarde_INI.txt');
  439 + FormularioGeral.Matar(g_oCacic.getCacicPath+'temp\','aguarde_SRCACIC.txt');
  440 + FormularioGeral.Matar(g_oCacic.getCacicPath+'temp\','aguarde_GER.txt');
  441 + FormularioGeral.Matar(g_oCacic.getCacicPath+'temp\','aguarde_INI.txt');
557 442 intContaJANELAS := 0;
558 443 h := 0;
559 444  
560   - if (not FileExists(p_path_cacic + 'temp\aguarde_GER.txt') and
561   - not FileExists(p_path_cacic + 'temp\aguarde_SRCACIC.txt') and
562   - not FileExists(p_path_cacic + 'temp\aguarde_INI.txt')) then
  445 + if (not FileExists(g_oCacic.getCacicPath + 'temp\aguarde_GER.txt') and
  446 + not FileExists(g_oCacic.getCacicPath + 'temp\aguarde_SRCACIC.txt') and
  447 + not FileExists(g_oCacic.getCacicPath + 'temp\aguarde_INI.txt')) then
563 448 Begin
564 449 FormularioGeral.CipherOpen;
565 450 // Verificação das janelas abertas para que não aconteça coletas caso haja aplicações pesadas rodando (configurado no Módulo Gerente)
... ... @@ -611,19 +496,19 @@ Begin
611 496  
612 497 if (intContaJANELAS = 0) and
613 498 (h = 0) and
614   - (not FileExists(p_path_cacic + 'temp\aguarde_GER.txt')) and
615   - (not FileExists(p_path_cacic + 'temp\aguarde_SRCACIC.txt')) and
616   - (not FileExists(p_path_cacic + 'temp\aguarde_INI.txt')) then
  499 + (not FileExists(g_oCacic.getCacicPath + 'temp\aguarde_GER.txt')) and
  500 + (not FileExists(g_oCacic.getCacicPath + 'temp\aguarde_SRCACIC.txt')) and
  501 + (not FileExists(g_oCacic.getCacicPath + 'temp\aguarde_INI.txt')) then
617 502 Result := true
618 503 else
619 504 Begin
620 505 FormularioGeral.log_DEBUG('Ação NEGADA!');
621 506 if (intContaJANELAS=0) then
622   - if (FileExists(p_path_cacic + 'temp\aguarde_SRCACIC.txt')) then
  507 + if (FileExists(g_oCacic.getCacicPath + 'temp\aguarde_SRCACIC.txt')) then
623 508 FormularioGeral.log_DEBUG('Suporte Remoto em atividade.')
624   - else if (FileExists(p_path_cacic + 'temp\aguarde_GER.txt')) then
  509 + else if (FileExists(g_oCacic.getCacicPath + 'temp\aguarde_GER.txt')) then
625 510 FormularioGeral.log_DEBUG('Gerente de Coletas em atividade.')
626   - else if (FileExists(p_path_cacic + 'temp\aguarde_INI.txt')) then
  511 + else if (FileExists(g_oCacic.getCacicPath + 'temp\aguarde_INI.txt')) then
627 512 FormularioGeral.log_DEBUG('Inicializador de Coletas em atividade.')
628 513 else FormularioGeral.CipherClose;
629 514 Result := false;
... ... @@ -680,33 +565,33 @@ var v_DatFile : TextFile;
680 565 v_strCipherClosed : string;
681 566 begin
682 567  
683   - log_DEBUG('Fechando '+v_DatFileName);
  568 + log_DEBUG('Fechando '+g_oCacic.getDatFileName);
684 569 if boolDebugs then
685 570 for intAux := 0 to (v_tstrCipherOpened.Count-1) do
686 571 log_DEBUG('Posição ['+inttostr(intAux)+']='+v_tstrCipherOpened[intAux]);
687 572  
688 573 try
689   - FileSetAttr (v_DatFileName,0); // Retira os atributos do arquivo para evitar o erro FILE ACCESS DENIED em máquinas 2000
  574 + FileSetAttr (g_oCacic.getDatFileName,0); // Retira os atributos do arquivo para evitar o erro FILE ACCESS DENIED em máquinas 2000
690 575  
691   - log_DEBUG('Localizando arquivo: '+v_DatFileName);
692   - AssignFile(v_DatFile,v_DatFileName); {Associa o arquivo a uma variável do tipo TextFile}
  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}
693 578 {$IOChecks off}
694   - log_DEBUG('Abrindo arquivo: '+v_DatFileName);
  579 + log_DEBUG('Abrindo arquivo: '+g_oCacic.getDatFileName);
695 580 ReWrite(v_DatFile); {Abre o arquivo texto}
696 581 {$IOChecks on}
697   - log_DEBUG('Append(2) no arquivo: '+v_DatFileName);
  582 + log_DEBUG('Append(2) no arquivo: '+g_oCacic.getDatFileName);
698 583 Append(v_DatFile);
699 584 log_DEBUG('Criando vetor para criptografia.');
700   - v_strCipherOpenImploded := Implode(v_tstrCipherOpened,v_SeparatorKey);
  585 + v_strCipherOpenImploded := Implode(v_tstrCipherOpened,g_oCacic.getSeparatorKey);
701 586  
702   - log_DEBUG('Salvando a string "'+v_strCipherOpenImploded+'" em '+v_DatFileName);
703   - v_strCipherClosed := EnCrypt(v_strCipherOpenImploded);
  587 + log_DEBUG('Salvando a string "'+v_strCipherOpenImploded+'" em '+g_oCacic.getDatFileName);
  588 + v_strCipherClosed := g_oCacic.enCrypt(v_strCipherOpenImploded);
704 589 Writeln(v_DatFile,v_strCipherClosed); {Grava a string Texto no arquivo texto}
705 590 CloseFile(v_DatFile);
706 591 except
707   - log_diario('ERRO NA GRAVAÇÃO DO ARQUIVO DE CONFIGURAÇÕES.('+v_DatFileName+')');
  592 + log_diario('ERRO NA GRAVAÇÃO DO ARQUIVO DE CONFIGURAÇÕES.('+g_oCacic.getDatFileName+')');
708 593 end;
709   - log_DEBUG(v_DatFileName+' fechado com sucesso!');
  594 + log_DEBUG(g_oCacic.getDatFileName+' fechado com sucesso!');
710 595 end;
711 596  
712 597 function TFormularioGeral.Get_File_Size(sFileToExamine: string; bInKBytes: Boolean): string;
... ... @@ -734,22 +619,22 @@ var v_DatFile : TextFile;
734 619 v_strCipherClosed : string;
735 620 begin
736 621  
737   - if (v_DataCacic2DAT = '') or (v_DataCacic2DAT <> FormatDateTime('ddmmyyyyhhnnsszzz', GetFolderDate(p_path_cacic + 'cacic2.dat'))) then
  622 + if (v_DataCacic2DAT = '') or (v_DataCacic2DAT <> FormatDateTime('ddmmyyyyhhnnsszzz', GetFolderDate(g_oCacic.getCacicPath + 'cacic2.dat'))) then
738 623 Begin
739   - v_DataCacic2DAT := FormatDateTime('ddmmyyyyhhnnsszzz', GetFolderDate(p_path_cacic + 'cacic2.dat'));
740   - log_DEBUG('Abrindo '+v_DatFileName +' - DateTime Cacic2.dat=> '+v_DataCacic2DAT);
  624 + v_DataCacic2DAT := FormatDateTime('ddmmyyyyhhnnsszzz', GetFolderDate(g_oCacic.getCacicPath + 'cacic2.dat'));
  625 + log_DEBUG('Abrindo '+g_oCacic.getDatFileName +' - DateTime Cacic2.dat=> '+v_DataCacic2DAT);
741 626 v_strCipherOpened := '';
742 627  
743   - v_Tamanho_Arquivo := Get_File_Size(v_DatFileName,true);
  628 + v_Tamanho_Arquivo := Get_File_Size(g_oCacic.getDatFileName,true);
744 629  
745 630 if (v_Tamanho_Arquivo = '0') or
746   - (v_Tamanho_Arquivo = '-1') then FormularioGeral.Matar(p_path_cacic,'cacic2.dat');
  631 + (v_Tamanho_Arquivo = '-1') then FormularioGeral.Matar(g_oCacic.getCacicPath,'cacic2.dat');
747 632  
748   - if FileExists(v_DatFileName) then
  633 + if FileExists(g_oCacic.getDatFileName) then
749 634 begin
750   - log_DEBUG(v_DatFileName+' já existe!');
751   - AssignFile(v_DatFile,v_DatFileName);
752   - log_DEBUG('Abrindo '+v_DatFileName);
  635 + log_DEBUG(g_oCacic.getDatFileName+' já existe!');
  636 + AssignFile(v_DatFile,g_oCacic.getDatFileName);
  637 + log_DEBUG('Abrindo '+g_oCacic.getDatFileName);
753 638  
754 639 {$IOChecks off}
755 640 Reset(v_DatFile);
... ... @@ -758,30 +643,30 @@ begin
758 643 log_DEBUG('Verificação de Existência.');
759 644 if (IOResult <> 0)then // Arquivo não existe, será recriado.
760 645 begin
761   - log_DEBUG('Recriando "'+v_DatFileName+'"');
  646 + log_DEBUG('Recriando "'+g_oCacic.getDatFileName+'"');
762 647 Rewrite (v_DatFile);
763 648 log_DEBUG('Inserindo Primeira Linha.');
764 649 Append(v_DatFile);
765 650 end;
766 651  
767   - log_DEBUG('Lendo '+v_DatFileName);
  652 + log_DEBUG('Lendo '+g_oCacic.getDatFileName);
768 653  
769 654 Readln(v_DatFile,v_strCipherClosed);
770 655  
771 656 log_DEBUG('Povoando Variável');
772 657 while not EOF(v_DatFile) do Readln(v_DatFile,v_strCipherClosed);
773   - log_DEBUG('Fechando '+v_DatFileName);
  658 + log_DEBUG('Fechando '+g_oCacic.getDatFileName);
774 659 CloseFile(v_DatFile);
775 660 log_DEBUG('Chamando Criptografia de conteúdo');
776   - v_strCipherOpened:= Decrypt(v_strCipherClosed);
  661 + v_strCipherOpened:= g_oCacic.deCrypt(v_strCipherClosed);
777 662 end;
778 663 if (trim(v_strCipherOpened)<>'') then
779   - v_tstrCipherOpened := explode(v_strCipherOpened,v_SeparatorKey)
  664 + v_tstrCipherOpened := explode(v_strCipherOpened,g_oCacic.getSeparatorKey)
780 665 else
781 666 Begin
782   - v_tstrCipherOpened := explode('Configs.ID_SO'+v_SeparatorKey+ g_oCacic.getWindowsStrId() +v_SeparatorKey+
783   - 'Configs.Endereco_WS'+v_SeparatorKey+'/cacic2/ws/',v_SeparatorKey);
784   - log_DEBUG(v_DatFileName+' Inexistente. Criado o DAT em memória.');
  667 + 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);
  669 + log_DEBUG(g_oCacic.getDatFileName+' Inexistente. Criado o DAT em memória.');
785 670 End;
786 671  
787 672 Result := v_tstrCipherOpened;
... ... @@ -920,7 +805,7 @@ Begin
920 805 Result := true;
921 806  
922 807 log_DEBUG('Verificando existência e tamanho do Gerente de Coletas...');
923   - v_Tamanho_Arquivo := Get_File_Size(p_path_cacic + 'modulos\ger_cols.exe',true);
  808 + v_Tamanho_Arquivo := Get_File_Size(g_oCacic.getCacicPath + 'modulos\ger_cols.exe',true);
924 809  
925 810 log_DEBUG('Resultado: #'+v_Tamanho_Arquivo);
926 811  
... ... @@ -928,7 +813,7 @@ Begin
928 813 Begin
929 814 Result := false;
930 815  
931   - Matar(p_path_cacic + 'modulos,'ger_cols.exe');
  816 + Matar(g_oCacic.getCacicPath + 'modulos,'ger_cols.exe');
932 817  
933 818 InicializaTray;
934 819  
... ... @@ -937,7 +822,7 @@ Begin
937 822 WinExec(PChar(HomeDrive + '\chksis.exe'),SW_HIDE);
938 823  
939 824 sleep(30000); // 30 segundos de espera para download do ger_cols.exe
940   - v_Tamanho_Arquivo := Get_File_Size(p_path_cacic + 'modulos\ger_cols.exe',true);
  825 + v_Tamanho_Arquivo := Get_File_Size(g_oCacic.getCacicPath + 'modulos\ger_cols.exe',true);
941 826 if not(v_Tamanho_Arquivo = '0') and not(v_Tamanho_Arquivo = '-1') then
942 827 Begin
943 828 log_diario('Módulo Gerente de Coletas RECUPERADO COM SUCESSO!');
... ... @@ -1142,20 +1027,20 @@ Begin
1142 1027  
1143 1028 log_debug('Verificando concomitância de sessões');
1144 1029 // Se eu conseguir matar o arquivo abaixo é porque não há outra sessão deste agente aberta... (POG? Nããão! :) )
1145   - FormularioGeral.Matar(p_path_cacic,'aguarde_CACIC.txt');
1146   - if (not (FileExists(p_path_cacic + 'aguarde_CACIC.txt'))) then
  1030 + FormularioGeral.Matar(g_oCacic.getCacicPath,'aguarde_CACIC.txt');
  1031 + if (not (FileExists(g_oCacic.getCacicPath + 'aguarde_CACIC.txt'))) then
1147 1032 result := true;
1148 1033 End;
1149 1034  
1150 1035 procedure TFormularioGeral.VerificaDebugs;
1151 1036 Begin
1152 1037 boolDebugs := false;
1153   - if DirectoryExists(p_path_cacic + 'Temp\Debugs') then
  1038 + if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then
1154 1039 Begin
1155   - if (FormatDateTime('ddmmyyyy', GetFolderDate(p_path_cacic + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then
  1040 + if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then
1156 1041 Begin
1157 1042 boolDebugs := true;
1158   - log_DEBUG('Pasta "' + p_path_cacic + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(p_path_cacic + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');
  1043 + log_DEBUG('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');
1159 1044 End;
1160 1045 End;
1161 1046 End;
... ... @@ -1174,7 +1059,7 @@ begin
1174 1059 Application.ShowMainForm:=false;
1175 1060 g_oCacic := TCACIC.Create;
1176 1061 //g_oCacic.showTrayIcon(false);
1177   - boolCrypt := true;
  1062 + boolCrypt := true;
1178 1063  
1179 1064 Try
1180 1065 // De acordo com a versão do OS, determino o ShellCommand para chamadas externas.
... ... @@ -1197,30 +1082,30 @@ begin
1197 1082  
1198 1083 // Caminho do aplicativo
1199 1084 if (v_cacic_dir <> '') then
1200   - p_path_cacic := v_cacic_dir
  1085 + g_oCacic.setCacicPath(v_cacic_dir)
1201 1086 else
1202   - p_path_cacic := ExtractFilePath(Application.Exename) ;
  1087 + g_oCacic.setCacicPath(ExtractFilePath(Application.Exename)) ;
1203 1088  
1204   - if not DirectoryExists(p_path_cacic + 'Temp') then
  1089 + if not DirectoryExists(g_oCacic.getCacicPath + 'Temp') then
1205 1090 begin
1206   - ForceDirectories(p_path_cacic + 'Temp');
1207   - Log_Diario('Criando pasta '+p_path_cacic + 'Temp');
  1091 + ForceDirectories(g_oCacic.getCacicPath + 'Temp');
  1092 + Log_Diario('Criando pasta '+g_oCacic.getCacicPath + 'Temp');
1208 1093 end;
1209 1094  
1210   - if not DirectoryExists(p_path_cacic + 'Modulos') then
  1095 + if not DirectoryExists(g_oCacic.getCacicPath + 'Modulos') then
1211 1096 begin
1212   - ForceDirectories(p_path_cacic + 'Modulos');
1213   - Log_Diario('Criando pasta '+p_path_cacic + 'Modulos');
  1097 + ForceDirectories(g_oCacic.getCacicPath + 'Modulos');
  1098 + Log_Diario('Criando pasta '+g_oCacic.getCacicPath + 'Modulos');
1214 1099 end;
1215 1100  
1216 1101 VerificaDebugs;
1217 1102  
1218   - log_DEBUG('Pasta do Sistema: "' + p_path_cacic + '"');
  1103 + log_DEBUG('Pasta do Sistema: "' + g_oCacic.getCacicPath + '"');
1219 1104  
1220 1105 if Posso_Rodar then
1221 1106 Begin
1222 1107 // Uma forma fácil de evitar que outra sessão deste agente seja iniciada! (POG? Nããããooo!) :))))
1223   - AssignFile(v_Aguarde,p_path_cacic + 'aguarde_CACIC.txt'); {Associa o arquivo a uma variável do tipo TextFile}
  1108 + AssignFile(v_Aguarde,g_oCacic.getCacicPath + 'aguarde_CACIC.txt'); {Associa o arquivo a uma variável do tipo TextFile}
1224 1109 {$IOChecks off}
1225 1110 Reset(v_Aguarde); {Abre o arquivo texto}
1226 1111 {$IOChecks on}
... ... @@ -1233,36 +1118,29 @@ begin
1233 1118 Writeln(v_Aguarde,'Futuramente penso em colocar aqui o pID, para possibilitar finalização via software externo...');
1234 1119 Append(v_Aguarde);
1235 1120  
1236   - // Chave AES. Recomenda-se que cada empresa altere a sua chave.
1237   - // Esta chave é passada como parâmetro para o Gerente de Coletas que, por sua vez,
1238   - // passa para o Inicializador de Coletas e este passa para os coletores...
1239   - v_CipherKey := 'CacicBrasil';
1240   - v_IV := 'abcdefghijklmnop';
1241   - v_SeparatorKey := '=CacicIsFree='; // Usada apenas para o cacic2.dat
1242   - v_DatFileName := p_path_cacic + 'cacic2.dat';
1243 1121 v_DataCacic2DAT := '';
1244 1122 v_tstrCipherOpened := TStrings.Create;
1245 1123 v_tstrCipherOpened := CipherOpen;
1246 1124  
1247   - if FileExists(p_path_cacic + 'cacic2.ini') then
  1125 + if FileExists(g_oCacic.getCacicPath + 'cacic2.ini') then
1248 1126 Begin
1249   - log_DEBUG('O arquivo "'+p_path_cacic + 'cacic2.ini" ainda existe. Vou resgatar algumas chaves/valores');
1250   - SetValorDatMemoria('Configs.EnderecoServidor' ,getValorChaveRegIni('Configs' ,'EnderecoServidor' ,p_path_cacic + 'cacic2.ini'),v_tstrCipherOpened);
1251   - SetValorDatMemoria('Configs.IN_EXIBE_BANDEJA' ,getValorChaveRegIni('Configs' ,'IN_EXIBE_BANDEJA' ,p_path_cacic + 'cacic2.ini'),v_tstrCipherOpened);
1252   - SetValorDatMemoria('Configs.TE_JANELAS_EXCECAO' ,getValorChaveRegIni('Configs' ,'TE_JANELAS_EXCECAO' ,p_path_cacic + 'cacic2.ini'),v_tstrCipherOpened);
1253   - SetValorDatMemoria('Configs.NU_EXEC_APOS' ,getValorChaveRegIni('Configs' ,'NU_EXEC_APOS' ,p_path_cacic + 'cacic2.ini'),v_tstrCipherOpened);
1254   - SetValorDatMemoria('Configs.NU_INTERVALO_EXEC' ,getValorChaveRegIni('Configs' ,'NU_INTERVALO_EXEC' ,p_path_cacic + 'cacic2.ini'),v_tstrCipherOpened);
1255   - SetValorDatMemoria('Configs.Endereco_WS' ,getValorChaveRegIni('Configs' ,'Endereco_WS' ,p_path_cacic + 'cacic2.ini'),v_tstrCipherOpened);
1256   - SetValorDatMemoria('Configs.TE_SENHA_ADM_AGENTE' ,getValorChaveRegIni('Configs' ,'TE_SENHA_ADM_AGENTE' ,p_path_cacic + 'cacic2.ini'),v_tstrCipherOpened);
1257   - SetValorDatMemoria('Configs.NU_INTERVALO_RENOVACAO_PATRIM' ,getValorChaveRegIni('Configs' ,'NU_INTERVALO_RENOVACAO_PATRIM' ,p_path_cacic + 'cacic2.ini'),v_tstrCipherOpened);
1258   - SetValorDatMemoria('Configs.DT_HR_ULTIMA_COLETA' ,getValorChaveRegIni('Configs' ,'DT_HR_ULTIMA_COLETA' ,p_path_cacic + 'cacic2.ini'),v_tstrCipherOpened);
1259   - SetValorDatMemoria('TcpIp.TE_ENDERECOS_MAC_INVALIDOS' ,getValorChaveRegIni('TcpIp' ,'TE_ENDERECOS_MAC_INVALIDOS' ,p_path_cacic + 'cacic2.ini'),v_tstrCipherOpened);
1260   - SetValorDatMemoria('TcpIp.ID_IP_REDE' ,getValorChaveRegIni('TcpIp' ,'ID_IP_REDE' ,p_path_cacic + 'cacic2.ini'),v_tstrCipherOpened);
1261   - SetValorDatMemoria('TcpIp.TE_IP' ,getValorChaveRegIni('TcpIp' ,'TE_IP' ,p_path_cacic + 'cacic2.ini'),v_tstrCipherOpened);
1262   - SetValorDatMemoria('TcpIp.TE_MASCARA' ,getValorChaveRegIni('TcpIp' ,'TE_MASCARA' ,p_path_cacic + 'cacic2.ini'),v_tstrCipherOpened);
1263   - SetValorDatMemoria('Patrimonio.ultima_rede_obtida' ,getValorChaveRegIni('Patrimonio' ,'ultima_rede_obtida' ,p_path_cacic + 'cacic2.ini'),v_tstrCipherOpened);
1264   - SetValorDatMemoria('Patrimonio.dt_ultima_renovacao' ,getValorChaveRegIni('Patrimonio' ,'dt_ultima_renovacao' ,p_path_cacic + 'cacic2.ini'),v_tstrCipherOpened);
1265   - Matar(p_path_cacic,'cacic2.ini');
  1127 + log_DEBUG('O arquivo "'+g_oCacic.getCacicPath + 'cacic2.ini" ainda existe. Vou resgatar algumas chaves/valores');
  1128 + SetValorDatMemoria('Configs.EnderecoServidor' ,getValorChaveRegIni('Configs' ,'EnderecoServidor' ,g_oCacic.getCacicPath + 'cacic2.ini'),v_tstrCipherOpened);
  1129 + SetValorDatMemoria('Configs.IN_EXIBE_BANDEJA' ,getValorChaveRegIni('Configs' ,'IN_EXIBE_BANDEJA' ,g_oCacic.getCacicPath + 'cacic2.ini'),v_tstrCipherOpened);
  1130 + SetValorDatMemoria('Configs.TE_JANELAS_EXCECAO' ,getValorChaveRegIni('Configs' ,'TE_JANELAS_EXCECAO' ,g_oCacic.getCacicPath + 'cacic2.ini'),v_tstrCipherOpened);
  1131 + SetValorDatMemoria('Configs.NU_EXEC_APOS' ,getValorChaveRegIni('Configs' ,'NU_EXEC_APOS' ,g_oCacic.getCacicPath + 'cacic2.ini'),v_tstrCipherOpened);
  1132 + SetValorDatMemoria('Configs.NU_INTERVALO_EXEC' ,getValorChaveRegIni('Configs' ,'NU_INTERVALO_EXEC' ,g_oCacic.getCacicPath + 'cacic2.ini'),v_tstrCipherOpened);
  1133 + SetValorDatMemoria('Configs.Endereco_WS' ,getValorChaveRegIni('Configs' ,'Endereco_WS' ,g_oCacic.getCacicPath + 'cacic2.ini'),v_tstrCipherOpened);
  1134 + SetValorDatMemoria('Configs.TE_SENHA_ADM_AGENTE' ,getValorChaveRegIni('Configs' ,'TE_SENHA_ADM_AGENTE' ,g_oCacic.getCacicPath + 'cacic2.ini'),v_tstrCipherOpened);
  1135 + SetValorDatMemoria('Configs.NU_INTERVALO_RENOVACAO_PATRIM' ,getValorChaveRegIni('Configs' ,'NU_INTERVALO_RENOVACAO_PATRIM' ,g_oCacic.getCacicPath + 'cacic2.ini'),v_tstrCipherOpened);
  1136 + SetValorDatMemoria('Configs.DT_HR_ULTIMA_COLETA' ,getValorChaveRegIni('Configs' ,'DT_HR_ULTIMA_COLETA' ,g_oCacic.getCacicPath + 'cacic2.ini'),v_tstrCipherOpened);
  1137 + SetValorDatMemoria('TcpIp.TE_ENDERECOS_MAC_INVALIDOS' ,getValorChaveRegIni('TcpIp' ,'TE_ENDERECOS_MAC_INVALIDOS' ,g_oCacic.getCacicPath + 'cacic2.ini'),v_tstrCipherOpened);
  1138 + SetValorDatMemoria('TcpIp.ID_IP_REDE' ,getValorChaveRegIni('TcpIp' ,'ID_IP_REDE' ,g_oCacic.getCacicPath + 'cacic2.ini'),v_tstrCipherOpened);
  1139 + SetValorDatMemoria('TcpIp.TE_IP' ,getValorChaveRegIni('TcpIp' ,'TE_IP' ,g_oCacic.getCacicPath + 'cacic2.ini'),v_tstrCipherOpened);
  1140 + SetValorDatMemoria('TcpIp.TE_MASCARA' ,getValorChaveRegIni('TcpIp' ,'TE_MASCARA' ,g_oCacic.getCacicPath + 'cacic2.ini'),v_tstrCipherOpened);
  1141 + SetValorDatMemoria('Patrimonio.ultima_rede_obtida' ,getValorChaveRegIni('Patrimonio' ,'ultima_rede_obtida' ,g_oCacic.getCacicPath + 'cacic2.ini'),v_tstrCipherOpened);
  1142 + SetValorDatMemoria('Patrimonio.dt_ultima_renovacao' ,getValorChaveRegIni('Patrimonio' ,'dt_ultima_renovacao' ,g_oCacic.getCacicPath + 'cacic2.ini'),v_tstrCipherOpened);
  1143 + Matar(g_oCacic.getCacicPath,'cacic2.ini');
1266 1144 End;
1267 1145  
1268 1146 if (ParamCount > 0) then //Caso o Cacic2 seja chamado com passagem de parâmetros...
... ... @@ -1388,8 +1266,8 @@ var
1388 1266 strDataArqLocal, strDataAtual : string;
1389 1267 begin
1390 1268 try
1391   - FileSetAttr (p_path_cacic + 'cacic2.log',0); // Retira os atributos do arquivo para evitar o erro FILE ACCESS DENIED em máquinas 2000
1392   - AssignFile(HistoricoLog,p_path_cacic + 'cacic2.log'); {Associa o arquivo a uma variável do tipo TextFile}
  1269 + FileSetAttr (g_oCacic.getCacicPath + 'cacic2.log',0); // Retira os atributos do arquivo para evitar o erro FILE ACCESS DENIED em máquinas 2000
  1270 + AssignFile(HistoricoLog,g_oCacic.getCacicPath + 'cacic2.log'); {Associa o arquivo a uma variável do tipo TextFile}
1393 1271 {$IOChecks off}
1394 1272 Reset(HistoricoLog); {Abre o arquivo texto}
1395 1273 {$IOChecks on}
... ... @@ -1401,7 +1279,7 @@ begin
1401 1279 end;
1402 1280 if (trim(strMsg) <> '') then
1403 1281 begin
1404   - DateTimeToString(strDataArqLocal, 'yyyymmdd', FileDateToDateTime(Fileage(p_path_cacic + 'cacic2.log')));
  1282 + DateTimeToString(strDataArqLocal, 'yyyymmdd', FileDateToDateTime(Fileage(g_oCacic.getCacicPath + 'cacic2.log')));
1405 1283 DateTimeToString(strDataAtual , 'yyyymmdd', Date);
1406 1284 if (strDataAtual <> strDataArqLocal) then // Se o arquivo INI não é da data atual...
1407 1285 begin
... ... @@ -1444,8 +1322,8 @@ end;
1444 1322 procedure TFormularioGeral.Invoca_GerCols(Sender: TObject;p_acao:string);
1445 1323 var v_versao : string;
1446 1324 begin
1447   - Matar(p_path_cacic + 'temp\','*.txt');
1448   - Matar(p_path_cacic + 'temp\','*.ini');
  1325 + Matar(g_oCacic.getCacicPath + 'temp\','*.txt');
  1326 + Matar(g_oCacic.getCacicPath + 'temp\','*.ini');
1449 1327  
1450 1328 // Caso exista o Gerente de Coletas será verificada a versão e excluída caso antiga(Uma forma de ação pró-ativa)
1451 1329 if ChecaGERCOLS then
... ... @@ -1454,7 +1332,7 @@ begin
1454 1332 CipherClose;
1455 1333 log_diario('Invocando Gerente de Coletas com ação: "'+p_acao+'"');
1456 1334 Timer_Nu_Exec_Apos.Enabled := False;
1457   - WinExec(PChar(p_path_cacic + 'modulos\GER_COLS.EXE /'+p_acao+' /p_CipherKey='+v_CipherKey),SW_HIDE);
  1335 + WinExec(PChar(g_oCacic.getCacicPath + 'modulos\GER_COLS.EXE /'+p_acao+' /p_CipherKey='+g_oCacic.getCipherKey),SW_HIDE);
1458 1336 End
1459 1337 else
1460 1338 log_diario('Não foi possível invocar o Gerente de Coletas!');
... ... @@ -1501,7 +1379,7 @@ begin
1501 1379  
1502 1380 CipherOpen;
1503 1381  
1504   - SetValorDatMemoria('Configs.TE_SO',g_te_so,v_tstrCipherOpened);
  1382 + SetValorDatMemoria('Configs.TE_SO',g_oCacic.getWindowsStrId,v_tstrCipherOpened);
1505 1383  
1506 1384 try
1507 1385 if FindCmdLineSwitch('execute', True) or
... ... @@ -1511,26 +1389,26 @@ begin
1511 1389 log_DEBUG('Preparando chamada ao Gerente de Coletas...');
1512 1390 // Se foi gerado o arquivo ger_erro.txt o Log conterá a mensagem alí gravada como valor de chave
1513 1391 // O Gerente de Coletas deverá ser eliminado para que seja baixado novamente por ChecaGERCOLS
1514   - if (FileExists(p_path_cacic + 'ger_erro.txt')) then
  1392 + if (FileExists(g_oCacic.getCacicPath + 'ger_erro.txt')) then
1515 1393 Begin
1516 1394 log_diario('Gerente de Coletas eliminado devido a falha:');
1517 1395 log_diario(getValorDatMemoria('Erro_Fatal_Descricao',v_tstrCipherOpened));
1518 1396 SetaVariaveisGlobais;
1519   - Matar(p_path_cacic,'ger_erro.txt');
1520   - Matar(p_path_cacic+'modulos\','ger_cols.exe');
  1397 + Matar(g_oCacic.getCacicPath,'ger_erro.txt');
  1398 + Matar(g_oCacic.getCacicPath+'modulos\','ger_cols.exe');
1521 1399 End;
1522 1400  
1523   - if (FileExists(p_path_cacic + 'temp\reset.txt')) then
  1401 + if (FileExists(g_oCacic.getCacicPath + 'temp\reset.txt')) then
1524 1402 Begin
1525   - Matar(p_path_cacic+'temp,'reset.txt');
  1403 + Matar(g_oCacic.getCacicPath+'temp,'reset.txt');
1526 1404 log_diario('Reinicializando...');
1527 1405 SetaVariaveisGlobais;
1528 1406 End;
1529 1407 Timer_Nu_Exec_Apos.Enabled := False;
1530 1408  
1531 1409 intContaExec := 1;
1532   - If (FileExists(p_path_cacic + 'temp\cacic2.bat') or
1533   - FileExists(p_path_cacic + 'temp\ger_cols.exe')) Then
  1410 + If (FileExists(g_oCacic.getCacicPath + 'temp\cacic2.bat') or
  1411 + FileExists(g_oCacic.getCacicPath + 'temp\ger_cols.exe')) Then
1534 1412 intContaExec := 2;
1535 1413  
1536 1414 // Muda HINT
... ... @@ -1632,33 +1510,33 @@ begin
1632 1510 End;
1633 1511  
1634 1512 // Caso tenha sido baixada nova cópia do Gerente de Coletas, esta deverá ser movida para cima da atual
1635   - if (FileExists(p_path_cacic + 'temp\ger_cols.exe')) then
  1513 + if (FileExists(g_oCacic.getCacicPath + 'temp\ger_cols.exe')) then
1636 1514 Begin
1637   - log_diario('Atualizando versão do Gerente de Coletas para '+getVersionInfo(p_path_cacic + 'temp\ger_cols.exe'));
  1515 + log_diario('Atualizando versão do Gerente de Coletas para '+getVersionInfo(g_oCacic.getCacicPath + 'temp\ger_cols.exe'));
1638 1516 // O MoveFileEx não se deu bem no Win98! :|
1639   - // MoveFileEx(PChar(p_path_cacic + 'temp\ger_cols.exe'),PChar(p_path_cacic + 'modulos\ger_cols.exe'),MOVEFILE_REPLACE_EXISTING);
  1517 + // MoveFileEx(PChar(g_oCacic.getCacicPath + 'temp\ger_cols.exe'),PChar(g_oCacic.getCacicPath + 'modulos\ger_cols.exe'),MOVEFILE_REPLACE_EXISTING);
1640 1518  
1641   - CopyFile(PChar(p_path_cacic + 'temp\ger_cols.exe'),PChar(p_path_cacic + 'modulos\ger_cols.exe'),false);
  1519 + CopyFile(PChar(g_oCacic.getCacicPath + 'temp\ger_cols.exe'),PChar(g_oCacic.getCacicPath + 'modulos\ger_cols.exe'),false);
1642 1520 sleep(2000); // 2 segundos de espera pela cópia! :) (Rwindows!)
1643 1521  
1644   - Matar(p_path_cacic+'temp,'ger_cols.exe');
  1522 + Matar(g_oCacic.getCacicPath+'temp,'ger_cols.exe');
1645 1523 sleep(2000); // 2 segundos de espera pela deleção!
1646 1524  
1647 1525 intContaExec := 2; // Forçará uma reexecução de Ger_Cols...
1648 1526 End;
1649 1527  
1650 1528 // Caso tenha sido baixada nova cópia do Agente Principal, esta deverá ser movida para cima da atual pelo Gerente de Coletas...
1651   - if (FileExists(p_path_cacic + 'temp\cacic2.exe')) then //AutoUpdate!
  1529 + if (FileExists(g_oCacic.getCacicPath + 'temp\cacic2.exe')) then //AutoUpdate!
1652 1530 Begin
1653 1531 // Verifico e excluo o Gerente de Coletas caso a versão seja anterior ao 1º release
1654   - v_versao := getVersionInfo(p_path_cacic + 'modulos\ger_cols.exe');
  1532 + v_versao := getVersionInfo(g_oCacic.getCacicPath + 'modulos\ger_cols.exe');
1655 1533 if ((copy(v_versao,1,5)='2.0.0') or // Versões anteriores ao 1º Release...
1656 1534 (v_versao = '2.0.1.2') or // Tivemos alguns problemas nas versões 2.0.1.2, 2.0.1.3 e 2.0.1.4
1657 1535 (v_versao = '2.0.1.3') or
1658 1536 (v_versao = '2.0.1.4') or
1659 1537 (v_versao = '0.0.0.0')) then // Provavelmente arquivo corrompido ou versão muito antiga
1660 1538 Begin
1661   - Matar(p_path_cacic+'modulos,'ger_cols.exe');
  1539 + Matar(g_oCacic.getCacicPath+'modulos,'ger_cols.exe');
1662 1540 sleep(2000); // 2 segundos de espera pela deleção!
1663 1541 End;
1664 1542  
... ... @@ -1672,8 +1550,8 @@ begin
1672 1550 // A existência de "temp\cacic2.bat" significa AutoUpdate já executado!
1673 1551 // Essa verificação foi usada no modelo antigo de AutoUpdate e deve ser mantida
1674 1552 // até a total convergência de versões para 2.0.1.16+...
1675   - if (FileExists(p_path_cacic + 'temp\cacic2.bat')) then
1676   - Matar(p_path_cacic+'temp\','cacic2.bat');
  1553 + if (FileExists(g_oCacic.getCacicPath + 'temp\cacic2.bat')) then
  1554 + Matar(g_oCacic.getCacicPath+'temp\','cacic2.bat');
1677 1555  
1678 1556 // O loop 1 foi dedicado a atualizações de versões e afins...
1679 1557 // O loop 2 deverá invocar as coletas propriamente ditas...
... ... @@ -1785,14 +1663,14 @@ begin
1785 1663 NotifyStruc.uCallbackMessage := WM_MYMESSAGE; //User defined message
1786 1664  
1787 1665 // Tento apagar os arquivos indicadores de ações de coletas
1788   - FormularioGeral.Matar(p_path_cacic+'temp\','aguarde_GER.txt');
1789   - FormularioGeral.Matar(p_path_cacic+'temp\','aguarde_INI.txt');
  1666 + FormularioGeral.Matar(g_oCacic.getCacicPath+'temp\','aguarde_GER.txt');
  1667 + FormularioGeral.Matar(g_oCacic.getCacicPath+'temp\','aguarde_INI.txt');
1790 1668  
1791 1669 v_intStatus := NORMAL;
1792 1670  
1793 1671 // Caso os indicadores de ações de coletas não existam, ativo o ícone normal/desconectado...
1794   - if not FileExists(p_path_cacic+'temp\aguarde_GER.txt') and
1795   - not FileExists(p_path_cacic+'temp\aguarde_INI.txt') then
  1672 + if not FileExists(g_oCacic.getCacicPath+'temp\aguarde_GER.txt') and
  1673 + not FileExists(g_oCacic.getCacicPath+'temp\aguarde_INI.txt') then
1796 1674 Begin
1797 1675 if not (FormularioGeral.getValorDatMemoria('Configs.ConexaoOK',v_tstrCipherOpened)='S') then
1798 1676 Begin
... ... @@ -2017,26 +1895,26 @@ begin
2017 1895 else
2018 1896 lbSemInformacoesPatrimoniais.Visible := false;
2019 1897  
2020   - st_lb_Etiqueta1.Caption := DeCrypt(XML_RetornaValor('te_etiqueta1', strConfigsPatrimonio));
  1898 + st_lb_Etiqueta1.Caption := g_oCacic.deCrypt(XML_RetornaValor('te_etiqueta1', strConfigsPatrimonio));
2021 1899 st_lb_Etiqueta1.Caption := st_lb_Etiqueta1.Caption + IfThen(st_lb_Etiqueta1.Caption='','',':');
2022 1900 st_vl_Etiqueta1.Caption := RetornaValorVetorUON1(GetValorDatMemoria('Patrimonio.id_unid_organizacional_nivel1',v_tstrCipherOpened));
2023 1901  
2024   - st_lb_Etiqueta1a.Caption := DeCrypt(XML_RetornaValor('te_etiqueta1a', strConfigsPatrimonio));
  1902 + st_lb_Etiqueta1a.Caption := g_oCacic.deCrypt(XML_RetornaValor('te_etiqueta1a', strConfigsPatrimonio));
2025 1903 st_lb_Etiqueta1a.Caption := st_lb_Etiqueta1a.Caption + IfThen(st_lb_Etiqueta1a.Caption='','',':');
2026 1904 st_vl_Etiqueta1a.Caption := RetornaValorVetorUON1a(GetValorDatMemoria('Patrimonio.id_unid_organizacional_nivel1a',v_tstrCipherOpened));
2027 1905  
2028   - st_lb_Etiqueta2.Caption := DeCrypt(XML_RetornaValor('te_etiqueta2', strConfigsPatrimonio));
  1906 + st_lb_Etiqueta2.Caption := g_oCacic.deCrypt(XML_RetornaValor('te_etiqueta2', strConfigsPatrimonio));
2029 1907 st_lb_Etiqueta2.Caption := st_lb_Etiqueta2.Caption + IfThen(st_lb_Etiqueta2.Caption='','',':');
2030 1908 st_vl_Etiqueta2.Caption := RetornaValorVetorUON2(GetValorDatMemoria('Patrimonio.id_unid_organizacional_nivel2',v_tstrCipherOpened),GetValorDatMemoria('Patrimonio.id_local',v_tstrCipherOpened));
2031 1909  
2032   - st_lb_Etiqueta3.Caption := DeCrypt(XML_RetornaValor('te_etiqueta3', strConfigsPatrimonio));
  1910 + st_lb_Etiqueta3.Caption := g_oCacic.deCrypt(XML_RetornaValor('te_etiqueta3', strConfigsPatrimonio));
2033 1911 st_lb_Etiqueta3.Caption := st_lb_Etiqueta3.Caption + IfThen(st_lb_Etiqueta3.Caption='','',':');
2034 1912 st_vl_Etiqueta3.Caption := GetValorDatMemoria('Patrimonio.te_localizacao_complementar',v_tstrCipherOpened);
2035 1913  
2036 1914  
2037   - if (DeCrypt(XML_RetornaValor('in_exibir_etiqueta4', strConfigsPatrimonio)) = 'S') then
  1915 + if (g_oCacic.deCrypt(XML_RetornaValor('in_exibir_etiqueta4', strConfigsPatrimonio)) = 'S') then
2038 1916 begin
2039   - st_lb_Etiqueta4.Caption := DeCrypt(XML_RetornaValor('te_etiqueta4', strConfigsPatrimonio));
  1917 + st_lb_Etiqueta4.Caption := g_oCacic.deCrypt(XML_RetornaValor('te_etiqueta4', strConfigsPatrimonio));
2040 1918 st_lb_Etiqueta4.Caption := st_lb_Etiqueta4.Caption + IfThen(st_lb_Etiqueta4.Caption='','',':');
2041 1919 st_lb_Etiqueta4.Visible := true;
2042 1920 st_vl_etiqueta4.Caption := GetValorDatMemoria('Patrimonio.te_info_patrimonio1',v_tstrCipherOpened);
... ... @@ -2047,9 +1925,9 @@ begin
2047 1925 st_vl_etiqueta4.Visible := false;
2048 1926 End;
2049 1927  
2050   - if (DeCrypt(XML_RetornaValor('in_exibir_etiqueta5', strConfigsPatrimonio)) = 'S') then
  1928 + if (g_oCacic.deCrypt(XML_RetornaValor('in_exibir_etiqueta5', strConfigsPatrimonio)) = 'S') then
2051 1929 begin
2052   - st_lb_Etiqueta5.Caption := DeCrypt(XML_RetornaValor('te_etiqueta5', strConfigsPatrimonio));
  1930 + st_lb_Etiqueta5.Caption := g_oCacic.deCrypt(XML_RetornaValor('te_etiqueta5', strConfigsPatrimonio));
2053 1931 st_lb_Etiqueta5.Caption := st_lb_Etiqueta5.Caption + IfThen(st_lb_Etiqueta5.Caption='','',':');
2054 1932 st_lb_Etiqueta5.Visible := true;
2055 1933 st_vl_etiqueta5.Caption := GetValorDatMemoria('Patrimonio.te_info_patrimonio2',v_tstrCipherOpened);
... ... @@ -2061,9 +1939,9 @@ begin
2061 1939 End;
2062 1940  
2063 1941  
2064   - if (DeCrypt(XML_RetornaValor('in_exibir_etiqueta6', strConfigsPatrimonio)) = 'S') then
  1942 + if (g_oCacic.deCrypt(XML_RetornaValor('in_exibir_etiqueta6', strConfigsPatrimonio)) = 'S') then
2065 1943 begin
2066   - st_lb_Etiqueta6.Caption := DeCrypt(XML_RetornaValor('te_etiqueta6', strConfigsPatrimonio));
  1944 + st_lb_Etiqueta6.Caption := g_oCacic.deCrypt(XML_RetornaValor('te_etiqueta6', strConfigsPatrimonio));
2067 1945 st_lb_Etiqueta6.Caption := st_lb_Etiqueta6.Caption + IfThen(st_lb_Etiqueta6.Caption='','',':');
2068 1946 st_lb_Etiqueta6.Visible := true;
2069 1947 st_vl_etiqueta6.Caption := GetValorDatMemoria('Patrimonio.te_info_patrimonio3',v_tstrCipherOpened);
... ... @@ -2075,9 +1953,9 @@ begin
2075 1953 End;
2076 1954  
2077 1955  
2078   - if (DeCrypt(XML_RetornaValor('in_exibir_etiqueta7', strConfigsPatrimonio)) = 'S') then
  1956 + if (g_oCacic.deCrypt(XML_RetornaValor('in_exibir_etiqueta7', strConfigsPatrimonio)) = 'S') then
2079 1957 begin
2080   - st_lb_Etiqueta7.Caption := DeCrypt(XML_RetornaValor('te_etiqueta7', strConfigsPatrimonio));
  1958 + st_lb_Etiqueta7.Caption := g_oCacic.deCrypt(XML_RetornaValor('te_etiqueta7', strConfigsPatrimonio));
2081 1959 st_lb_Etiqueta7.Caption := st_lb_Etiqueta7.Caption + IfThen(st_lb_Etiqueta7.Caption='','',':');
2082 1960 st_lb_Etiqueta7.Visible := true;
2083 1961 st_vl_etiqueta7.Caption := GetValorDatMemoria('Patrimonio.te_info_patrimonio4',v_tstrCipherOpened);
... ... @@ -2089,9 +1967,9 @@ begin
2089 1967 End;
2090 1968  
2091 1969  
2092   - if (DeCrypt(XML_RetornaValor('in_exibir_etiqueta8', strConfigsPatrimonio)) = 'S') then
  1970 + if (g_oCacic.deCrypt(XML_RetornaValor('in_exibir_etiqueta8', strConfigsPatrimonio)) = 'S') then
2093 1971 begin
2094   - st_lb_Etiqueta8.Caption := DeCrypt(XML_RetornaValor('te_etiqueta8', strConfigsPatrimonio));
  1972 + st_lb_Etiqueta8.Caption := g_oCacic.deCrypt(XML_RetornaValor('te_etiqueta8', strConfigsPatrimonio));
2095 1973 st_lb_Etiqueta8.Caption := st_lb_Etiqueta8.Caption + IfThen(st_lb_Etiqueta8.Caption='','',':');
2096 1974 st_lb_Etiqueta8.Visible := true;
2097 1975 st_vl_etiqueta8.Caption := GetValorDatMemoria('Patrimonio.te_info_patrimonio5',v_tstrCipherOpened);
... ... @@ -2103,9 +1981,9 @@ begin
2103 1981 End;
2104 1982  
2105 1983  
2106   - if (DeCrypt(XML_RetornaValor('in_exibir_etiqueta9', strConfigsPatrimonio)) = 'S') then
  1984 + if (g_oCacic.deCrypt(XML_RetornaValor('in_exibir_etiqueta9', strConfigsPatrimonio)) = 'S') then
2107 1985 begin
2108   - st_lb_Etiqueta9.Caption := DeCrypt(XML_RetornaValor('te_etiqueta9', strConfigsPatrimonio));
  1986 + st_lb_Etiqueta9.Caption := g_oCacic.deCrypt(XML_RetornaValor('te_etiqueta9', strConfigsPatrimonio));
2109 1987 st_lb_Etiqueta9.Caption := st_lb_Etiqueta9.Caption + IfThen(st_lb_Etiqueta9.Caption='','',':');
2110 1988 st_lb_Etiqueta9.Visible := true;
2111 1989 st_vl_etiqueta9.Caption := GetValorDatMemoria('Patrimonio.te_info_patrimonio6',v_tstrCipherOpened);
... ... @@ -2254,7 +2132,7 @@ begin
2254 2132 strXML := URLDecode(ARequestInfo.UnparsedParams);
2255 2133 intAux := Pos('=',strXML);
2256 2134 strXML := copy(strXML,(intAux+1),StrLen(PAnsiChar(strXML))-intAux);
2257   - strXML := DeCrypt(strXML);
  2135 + strXML := g_oCacic.deCrypt(strXML);
2258 2136  
2259 2137  
2260 2138  
... ... @@ -2307,42 +2185,44 @@ begin
2307 2185 if boolServerON then // Ordeno ao SrCACICsrv que auto-finalize
2308 2186 Begin
2309 2187 Log_Diario('Desativando Suporte Remoto Seguro.');
2310   - WinExec(PChar(p_path_cacic + 'modulos\srcacicsrv.exe -kill'),SW_HIDE);
  2188 + WinExec(PChar(g_oCacic.getCacicPath + 'modulos\srcacicsrv.exe -kill'),SW_HIDE);
2311 2189 boolServerON := false;
2312 2190 End
2313 2191 else
2314 2192 Begin
2315   - log_DEBUG('Invocando "'+p_path_cacic + 'modulos\srcacicsrv.exe"...');
  2193 + log_DEBUG('Invocando "'+g_oCacic.getCacicPath + 'modulos\srcacicsrv.exe"...');
2316 2194 Log_Diario('Ativando Suporte Remoto Seguro.');
2317 2195 boolAux := boolCrypt;
2318 2196 boolCrypt := true;
2319 2197  
2320 2198 // Alguns cuidados necessários ao tráfego e recepção de valores pelo Gerente WEB
2321 2199 // Some cares about send and receive at Gerente WEB
2322   - strPalavraChave := StringReplace(FormularioGeral.getValorDatMemoria('Configs.te_palavra_chave', v_tstrCipherOpened),'+','<MAIS>' ,[rfReplaceAll]);
  2200 + strPalavraChave := FormularioGeral.getValorDatMemoria('Configs.te_palavra_chave', v_tstrCipherOpened);
2323 2201 strPalavraChave := StringReplace(strPalavraChave,' ' ,'<ESPACE>' ,[rfReplaceAll]);
2324 2202 strPalavraChave := StringReplace(strPalavraChave,'"' ,'<AD>' ,[rfReplaceAll]);
2325 2203 strPalavraChave := StringReplace(strPalavraChave,'''' ,'<AS>' ,[rfReplaceAll]);
2326 2204 strPalavraChave := StringReplace(strPalavraChave,'\' ,'<BarrInv>' ,[rfReplaceAll]);
2327   - strPalavraChave := StringReplace(EnCrypt(strPalavraChave),'+','<MAIS>',[rfReplaceAll]);
  2205 + strPalavraChave := g_oCacic.enCrypt(strPalavraChave);
  2206 + strPalavraChave := StringReplace(strPalavraChave,'+','<MAIS>',[rfReplaceAll]);
2328 2207  
2329   - strTeSO := StringReplace(FormularioGeral.getValorDatMemoria('Configs.TE_SO', v_tstrCipherOpened),' ','<ESPACE>',[rfReplaceAll]);
2330   - strTeSO := StringReplace(EnCrypt(strTeSO),'+','<MAIS>',[rfReplaceAll]);
  2208 + strTeSO := trim(StringReplace(FormularioGeral.getValorDatMemoria('Configs.TE_SO', v_tstrCipherOpened),' ','<ESPACE>',[rfReplaceAll]));
  2209 + strTeSO := g_oCacic.enCrypt(strTeSO);
  2210 + strTeSO := StringReplace(strTeSO,'+','<MAIS>',[rfReplaceAll]);
2331 2211  
2332   - strTeNodeAddress := StringReplace(FormularioGeral.getValorDatMemoria('TcpIp.TE_NODE_ADDRESS' , v_tstrCipherOpened),' ','<ESPACE>' ,[rfReplaceAll]);
2333   - strTeNodeAddress := StringReplace(EnCrypt(strTeNodeAddress),'+','<MAIS>',[rfReplaceAll]);
  2212 + strTeNodeAddress := trim(StringReplace(FormularioGeral.getValorDatMemoria('TcpIp.TE_NODE_ADDRESS' , v_tstrCipherOpened),' ','<ESPACE>' ,[rfReplaceAll]));
  2213 + strTeNodeAddress := g_oCacic.enCrypt(strTeNodeAddress);
  2214 + strTeNodeAddress := StringReplace(strTeNodeAddress,'+','<MAIS>',[rfReplaceAll]);
2334 2215  
2335   - log_DEBUG('Invocando "'+p_path_cacic + 'modulos\srcacicsrv.exe -start [' + EnCrypt(FormularioGeral.getValorDatMemoria('Configs.EnderecoServidor', v_tstrCipherOpened)) + ']' +
2336   - '[' + EnCrypt(FormularioGeral.getValorDatMemoria('Configs.Endereco_WS' , v_tstrCipherOpened)) + ']' +
  2216 + log_DEBUG('Invocando "'+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)) + ']' +
2337 2218 '[' + strTeSO + ']' +
2338 2219 '[' + strTeNodeAddress + ']' +
2339 2220 '[' + strPalavraChave + ']' +
2340   - '[' + p_path_cacic + 'Temp\aguarde_srCACIC.txt' + ']');
2341   -
  2221 + '[' + g_oCacic.getCacicPath + 'Temp\aguarde_srCACIC.txt' + ']');
2342 2222  
2343 2223 // Detectar versão do Windows antes de fazer a chamada seguinte...
2344 2224 try
2345   - AssignFile(fileAguarde,p_path_cacic + 'Temp\aguarde_srCACIC.txt');
  2225 + AssignFile(fileAguarde,g_oCacic.getCacicPath + 'Temp\aguarde_srCACIC.txt');
2346 2226 {$IOChecks off}
2347 2227 Reset(fileAguarde); {Abre o arquivo texto}
2348 2228 {$IOChecks on}
... ... @@ -2357,12 +2237,12 @@ begin
2357 2237 Finally
2358 2238 End;
2359 2239  
2360   - WinExec(PChar(p_path_cacic + 'modulos\srcacicsrv.exe -start [' + EnCrypt(FormularioGeral.getValorDatMemoria('Configs.EnderecoServidor', v_tstrCipherOpened)) + ']' +
2361   - '[' + EnCrypt(FormularioGeral.getValorDatMemoria('Configs.Endereco_WS' , v_tstrCipherOpened)) + ']' +
  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)) + ']' +
2362 2242 '[' + strTeSO + ']' +
2363 2243 '[' + strTeNodeAddress + ']' +
2364 2244 '[' + strPalavraChave + ']' +
2365   - '[' + p_path_cacic + 'Temp\aguarde_srCACIC.txt' + ']'),SW_NORMAL);
  2245 + '[' + g_oCacic.getCacicPath + 'Temp\aguarde_srCACIC.txt' + ']'),SW_NORMAL);
2366 2246  
2367 2247 boolCrypt := boolAux;
2368 2248 BoolServerON := true;
... ... @@ -2374,20 +2254,24 @@ procedure TFormularioGeral.Popup_Menu_ContextoPopup(Sender: TObject);
2374 2254 begin
2375 2255 VerificaDebugs;
2376 2256 if (getValorDatMemoria('Configs.CS_SUPORTE_REMOTO',v_tstrCipherOpened) = 'S') and
2377   - (FileExists(p_path_cacic + 'modulos\srcacicsrv.exe')) then
  2257 + (FileExists(g_oCacic.getCacicPath + 'modulos\srcacicsrv.exe')) then
2378 2258 Mnu_SuporteRemoto.Enabled := true
2379 2259 else
2380 2260 Mnu_SuporteRemoto.Enabled := false;
2381 2261  
2382 2262 boolServerON := false;
2383   - FormularioGeral.Matar(p_path_cacic+'temp\','aguarde_SRCACIC.txt');
2384   - if FileExists(p_path_cacic + 'temp\aguarde_SRCACIC.txt') then
  2263 + FormularioGeral.Matar(g_oCacic.getCacicPath+'temp\','aguarde_SRCACIC.txt');
  2264 + if FileExists(g_oCacic.getCacicPath + 'temp\aguarde_SRCACIC.txt') then
2385 2265 Begin
2386   - Mnu_SuporteRemoto.Caption := 'Desativar Suporte Remoto';
  2266 + Mnu_SuporteRemoto.Caption := 'Suporte Remoto Ativo!';
  2267 + Mnu_SuporteRemoto.Enabled := false;
2387 2268 boolServerON := true;
2388 2269 End
2389 2270 else
2390   - Mnu_SuporteRemoto.Caption := 'Ativar Suporte Remoto';
  2271 + Begin
  2272 + Mnu_SuporteRemoto.Caption := 'Ativar Suporte Remoto';
  2273 + Mnu_SuporteRemoto.Enabled := true;
  2274 + End;
2391 2275  
2392 2276 end;
2393 2277  
... ...
mapa/acesso.pas
... ... @@ -20,8 +20,17 @@ unit acesso;
20 20 interface
21 21  
22 22 uses
23   - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
24   - StdCtrls, ExtCtrls, dialogs;
  23 + Windows,
  24 + Messages,
  25 + SysUtils,
  26 + Variants,
  27 + Classes,
  28 + Graphics,
  29 + Controls,
  30 + Forms,
  31 + StdCtrls,
  32 + ExtCtrls,
  33 + dialogs;
25 34  
26 35 type
27 36 TfrmAcesso = class(TForm)
... ... @@ -54,7 +63,8 @@ type
54 63 { Public declarations }
55 64 end;
56 65  
57   -var frmAcesso: TfrmAcesso;
  66 +var
  67 + frmAcesso: TfrmAcesso;
58 68  
59 69 implementation
60 70 uses main_mapa;
... ... @@ -71,24 +81,24 @@ begin
71 81 lbMsg_Erro_Senha.Caption := str_local_Aux;
72 82  
73 83 // Envio dos dados ao DataBase...
74   - Request_mapa.Values['nm_acesso'] := frmMapaCacic.EnCrypt(edNomeUsuarioAcesso.Text);
75   - Request_mapa.Values['te_senha'] := frmMapaCacic.EnCrypt(edSenhaAcesso.Text);
76   - Request_mapa.Values['cs_MapaCacic'] := frmMapaCacic.EnCrypt('S');
77   - Request_mapa.Values['te_versao_mapa'] := frmMapaCacic.EnCrypt(frmMapaCacic.getVersionInfo(ParamStr(0)));
  84 + Request_mapa.Values['nm_acesso'] := frmMapaCacic.g_oCacic.enCrypt(edNomeUsuarioAcesso.Text);
  85 + Request_mapa.Values['te_senha'] := frmMapaCacic.g_oCacic.EnCrypt(edSenhaAcesso.Text);
  86 + Request_mapa.Values['cs_MapaCacic'] := frmMapaCacic.g_oCacic.EnCrypt('S');
  87 + Request_mapa.Values['te_versao_mapa'] := frmMapaCacic.g_oCacic.EnCrypt(frmMapaCacic.getVersionInfo(ParamStr(0)));
78 88  
79 89 strRetorno := frmMapaCacic.ComunicaServidor('mapa_acesso.php', Request_mapa, 'Autenticando o Acesso...');
80 90 Request_mapa.free;
81 91  
82 92 if (frmMapaCacic.XML_RetornaValor('STATUS', strRetorno)='OK') then
83 93 Begin
84   - str_local_Aux := trim(frmMapaCacic.DeCrypt(frmMapaCacic.XML_RetornaValor('TE_VERSAO_MAPA',strRetorno)));
  94 + str_local_Aux := trim(frmMapaCacic.g_oCacic.deCrypt(frmMapaCacic.XML_RetornaValor('TE_VERSAO_MAPA',strRetorno)));
85 95 if (str_local_Aux <> '') then
86 96 Begin
87 97 MessageDLG(#13#10#13#10+'ATENÇÃO! Foi disponibilizada a versão "'+str_local_Aux+'".'+#13#10#13#10+'Acesse o gerente cacic na opção "Repositório" e baixe o programa "MapaCACIC"!'+#13#10,mtWarning,[mbOK],0);
88 98 btCancela.Click;
89 99 End;
90 100  
91   - str_local_Aux := trim(frmMapaCacic.DeCrypt(frmMapaCacic.XML_RetornaValor('ID_USUARIO',strRetorno)));
  101 + str_local_Aux := trim(frmMapaCacic.g_oCacic.deCrypt(frmMapaCacic.XML_RetornaValor('ID_USUARIO',strRetorno)));
92 102 if (str_local_Aux <> '') then
93 103 Begin
94 104 frmMapaCacic.strId_usuario := str_local_Aux;
... ... @@ -109,7 +119,7 @@ begin
109 119  
110 120 if (frmMapaCacic.boolAcessoOK) then
111 121 Begin
112   - lbAviso.Caption := 'USUÁRIO AUTENTICADO: "' + trim(frmMapaCacic.DeCrypt(frmMapaCacic.XML_RetornaValor('NM_USUARIO_COMPLETO',strRetorno)))+'"';
  122 + lbAviso.Caption := 'USUÁRIO AUTENTICADO: "' + trim(frmMapaCacic.g_oCacic.deCrypt(frmMapaCacic.XML_RetornaValor('NM_USUARIO_COMPLETO',strRetorno)))+'"';
113 123 lbAviso.Font.Style := [fsBold];
114 124 lbAviso.Font.Color := clGreen;
115 125 Application.ProcessMessages;
... ... @@ -145,7 +155,7 @@ procedure TfrmAcesso.FormCreate(Sender: TObject);
145 155 begin
146 156 intPausaPadrao := 3000; //(3 mil milisegundos = 3 segundos)
147 157 frmAcesso.lbVersao.Caption := 'Versão: ' + frmMapaCacic.GetVersionInfo(ParamStr(0));
148   - frmMapaCacic.tStringsCipherOpened := frmMapaCacic.CipherOpen(frmMapaCacic.strDatFileName);
  158 + frmMapaCacic.tStringsCipherOpened := frmMapaCacic.CipherOpen(frmMapaCacic.g_oCacic.getDatFileName);
149 159 frmMapaCacic.lbNomeServidorWEB.Caption := 'Servidor: '+frmMapaCacic.GetValorDatMemoria('Configs.EnderecoServidor', frmMapaCacic.tStringsCipherOpened);
150 160 frmMapaCacic.lbMensagens.Caption := 'Entrada de Dados para Autenticação no Módulo Gerente WEB Cacic';
151 161 if (frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NODE_ADDRESS' , frmMapaCacic.tStringsCipherOpened)='') then
... ...
mapa/main_mapa.pas
... ... @@ -19,57 +19,40 @@ unit main_mapa;
19 19  
20 20 interface
21 21  
22   -uses IniFiles,
23   - Windows,
24   - Sysutils, // Deve ser colocado após o Windows acima, nunca antes
25   - strutils,
26   - Registry,
27   - LibXmlParser,
28   - XML,
29   - IdTCPConnection,
30   - IdTCPClient,
31   - IdHTTP,
32   - IdBaseComponent,
33   - IdComponent,
34   - WinSock,
35   - NB30,
36   - StdCtrls,
37   - Controls,
38   - Classes,
39   - Forms,
40   - PJVersionInfo,
41   - DCPcrypt2,
42   - DCPrijndael,
43   - DCPbase64,
44   - ExtCtrls,
45   - Graphics,
46   - Dialogs,
47   - CACIC_Library;
48   -
49   -var strCipherClosed,
50   - strCipherOpened,
51   - strPathCacic : string;
52   -
53   -var intPausaPadrao : integer;
54   -
55   -var boolDebugs : boolean;
56   -
57   -var g_oCacic : TCACIC;
58   -
59   -// Some constants that are dependant on the cipher being used
60   -// Assuming MCRYPT_RIJNDAEL_128 (i.e., 128bit blocksize, 256bit keysize)
61   -const constKeySize = 32; // 32 bytes = 256 bits
62   - constBlockSize = 16; // 16 bytes = 128 bits
63   -
64   -// Constantes a serem usadas pela função IsAdmin...
65   -const constSECURITY_NT_AUTHORITY: TSIDIdentifierAuthority = (Value: (0, 0, 0, 0, 0, 5));
66   - constSECURITY_BUILTIN_DOMAIN_RID = $00000020;
67   - constDOMAIN_ALIAS_RID_ADMINS = $00000220;
68   -
69   -const constCipherKey = 'CacicBrasil';
70   - constIV = 'abcdefghijklmnop';
71   - constSeparatorKey = '=CacicIsFree='; // Usada apenas para o cacic2.dat
  22 +uses
  23 + IniFiles,
  24 + Windows,
  25 + Sysutils, // Deve ser colocado após o Windows acima, nunca antes
  26 + strutils,
  27 + Registry,
  28 + LibXmlParser,
  29 + XML,
  30 + IdTCPConnection,
  31 + IdTCPClient,
  32 + IdHTTP,
  33 + IdBaseComponent,
  34 + IdComponent,
  35 + WinSock,
  36 + NB30,
  37 + StdCtrls,
  38 + Controls,
  39 + Classes,
  40 + Forms,
  41 + PJVersionInfo,
  42 + ExtCtrls,
  43 + Graphics,
  44 + Dialogs,
  45 + CACIC_Library;
72 46  
  47 +var
  48 + strCipherClosed,
  49 + strCipherOpened : string;
  50 +
  51 +var
  52 + intPausaPadrao : integer;
  53 +
  54 +var
  55 + boolDebugs : boolean;
73 56  
74 57 type
75 58 TfrmMapaCacic = class(TForm)
... ... @@ -109,15 +92,9 @@ type
109 92 function GetValorChaveRegEdit(Chave: String): Variant;
110 93 function GetRootKey(strRootKey: String): HKEY;
111 94 Function RemoveCaracteresEspeciais(Texto, p_Fill : String; p_start, p_end:integer) : String;
112   - function HomeDrive : string;
113   - Function Implode(p_Array : TStrings ; p_Separador : String) : String;
114 95 Function CipherClose(p_DatFileName : string; p_tstrCipherOpened : TStrings) : String;
115   - Function Explode(Texto, Separador : String) : TStrings;
116 96 Function CipherOpen(p_DatFileName : string) : TStrings;
117 97 Function GetValorDatMemoria(p_Chave : String; p_tstrCipherOpened : TStrings) : String;
118   - function PadWithZeros(const str : string; size : integer) : string;
119   - function EnCrypt(p_Data : String) : String;
120   - function DeCrypt(p_Data : String) : String;
121 98 procedure MontaCombos(p_strConfigs : String);
122 99 procedure MontaInterface(p_strConfigs : String);
123 100 procedure FormClose(Sender: TObject; var Action: TCloseAction);
... ... @@ -131,7 +108,6 @@ type
131 108 function VerFmt(const MS, LS: DWORD): string;
132 109 function GetFolderDate(Folder: string): TDateTime;
133 110 procedure CriaFormSenha(Sender: TObject);
134   - function IsAdmin: Boolean;
135 111 Function ComunicaServidor(URL : String; Request : TStringList; MsgAcao: String) : String;
136 112 Function XML_RetornaValor(Tag : String; Fonte : String): String;
137 113 function Parse(p_ClassName, p_SectionName, p_DataName:string; p_Report : TStringList) : String;
... ... @@ -166,8 +142,8 @@ type
166 142 strTe_info_patrimonio6 : String;
167 143 public
168 144 boolAcessoOK : boolean;
169   - strId_usuario,
170   - strDatFileName : String;
  145 + strId_usuario : String;
  146 + g_oCacic : TCACIC;
171 147 tStringsDadosPatrimonio,
172 148 tStringsCipherOpened,
173 149 tStringsTripa1 : TStrings;
... ... @@ -266,8 +242,8 @@ var
266 242 strDataArqLocal, strDataAtual : string;
267 243 begin
268 244 try
269   - FileSetAttr (strPathCacic + 'MapaCacic.log',0); // Retira os atributos do arquivo para evitar o erro FILE ACCESS DENIED em máquinas 2000
270   - AssignFile(HistoricoLog,strPathCacic + 'MapaCacic.log'); {Associa o arquivo a uma variável do tipo TextFile}
  245 + FileSetAttr (g_oCacic.getCacicPath + 'MapaCacic.log',0); // Retira os atributos do arquivo para evitar o erro FILE ACCESS DENIED em máquinas 2000
  246 + AssignFile(HistoricoLog,g_oCacic.getCacicPath + 'MapaCacic.log'); {Associa o arquivo a uma variável do tipo TextFile}
271 247 {$IOChecks off}
272 248 Reset(HistoricoLog); {Abre o arquivo texto}
273 249 {$IOChecks on}
... ... @@ -277,7 +253,7 @@ begin
277 253 Append(HistoricoLog);
278 254 Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now) + '======================> Iniciando o Log <=======================');
279 255 end;
280   - DateTimeToString(strDataArqLocal, 'yyyymmdd', FileDateToDateTime(Fileage(strPathCacic + 'MapaCacic.log')));
  256 + DateTimeToString(strDataArqLocal, 'yyyymmdd', FileDateToDateTime(Fileage(g_oCacic.getCacicPath + 'MapaCacic.log')));
281 257 DateTimeToString(strDataAtual , 'yyyymmdd', Date);
282 258 if (strDataAtual <> strDataArqLocal) then // Se o arquivo INI não é da data atual...
283 259 begin
... ... @@ -317,7 +293,7 @@ var
317 293 strDataArqLocal, strDataAtual, v_file_debugs : string;
318 294 begin
319 295 try
320   - v_file_debugs := strPathCacic + '\debug_mapa.txt';
  296 + v_file_debugs := g_oCacic.getCacicPath + '\debug_mapa.txt';
321 297 FileSetAttr (v_file_debugs,0); // Retira os atributos do arquivo para evitar o erro FILE ACCESS DENIED em máquinas 2000
322 298 AssignFile(DebugsFile,v_file_debugs); {Associa o arquivo a uma variável do tipo TextFile}
323 299  
... ... @@ -349,38 +325,6 @@ begin
349 325 end;
350 326 end;
351 327  
352   -
353   -//
354   -Function TfrmMapaCacic.Explode(Texto, Separador : String) : TStrings;
355   -var
356   - strItem : String;
357   - ListaAuxUTILS : TStrings;
358   - NumCaracteres,
359   - TamanhoSeparador,
360   - I : Integer;
361   -Begin
362   - ListaAuxUTILS := TStringList.Create;
363   - strItem := '';
364   - NumCaracteres := Length(Texto);
365   - TamanhoSeparador := Length(Separador);
366   - I := 1;
367   - While I <= NumCaracteres Do
368   - Begin
369   - If (Copy(Texto,I,TamanhoSeparador) = Separador) or (I = NumCaracteres) Then
370   - Begin
371   - if (I = NumCaracteres) then strItem := strItem + Texto[I];
372   - ListaAuxUTILS.Add(trim(strItem));
373   - strItem := '';
374   - I := I + (TamanhoSeparador-1);
375   - end
376   - Else
377   - strItem := strItem + Texto[I];
378   -
379   - I := I + 1;
380   - End;
381   - Explode := ListaAuxUTILS;
382   -end;
383   -
384 328 // Função criada devido a divergências entre os valores retornados pelos métodos dos componentes MSI e seus Reports.
385 329 function TfrmMapaCacic.Parse(p_ClassName, p_SectionName, p_DataName:string; p_Report : TStringList) : String;
386 330 var intClasses, intSections, intDatas, v_achei_SectionName, v_array_SectionName_Count : integer;
... ... @@ -390,7 +334,7 @@ begin
390 334 Result := '';
391 335 if (p_SectionName <> '') then
392 336 Begin
393   - v_array_SectionName := explode(p_SectionName,'/');
  337 + v_array_SectionName := g_oCacic.explode(p_SectionName,'/');
394 338 v_array_SectionName_Count := v_array_SectionName.Count;
395 339 End
396 340 else v_array_SectionName_Count := 0;
... ... @@ -464,15 +408,16 @@ procedure TfrmMapaCacic.Finalizar(p_pausa:boolean);
464 408 Begin
465 409 Mensagem('Finalizando MapaCacic...',false,0);
466 410  
467   - CipherClose(strDatFileName, tStringsCipherOpened);
  411 + CipherClose(g_oCacic.getDatFileName, tStringsCipherOpened);
468 412 Apaga_Temps;
469 413 if p_pausa then sleep(2000); // Pausa de 2 segundos para conclusão de operações de arquivos.
470 414 Sair;
471 415 End;
  416 +
472 417 procedure TfrmMapaCacic.Apaga_Temps;
473 418 begin
474   - Matar(strPathCacic + 'temp\','*.vbs');
475   - Matar(strPathCacic + 'temp\','*.txt');
  419 + Matar(g_oCacic.getCacicPath + 'temp\','*.vbs');
  420 + Matar(g_oCacic.getCacicPath + 'temp\','*.txt');
476 421 end;
477 422 //
478 423 function TfrmMapaCacic.LastPos(SubStr, S: string): Integer;
... ... @@ -547,7 +492,7 @@ Begin
547 492 strEnderecoWS := '/cacic2/ws/';
548 493  
549 494 if (trim(strEnderecoServidor)='') then
550   - strEnderecoServidor := Trim(GetValorChaveRegIni('Cacic2','ip_serv_cacic',strPathCacic + 'MapaCacic.ini'));
  495 + strEnderecoServidor := Trim(GetValorChaveRegIni('Cacic2','ip_serv_cacic',g_oCacic.getCacicPath + 'MapaCacic.ini'));
551 496  
552 497 strEndereco := 'http://' + strEnderecoServidor + strEnderecoWS + URL;
553 498  
... ... @@ -574,9 +519,9 @@ Begin
574 519 idHTTP1.ReadTimeout := 0;
575 520 idHTTP1.RecvBufferSize := 32768;
576 521 idHTTP1.RedirectMaximum := 15;
577   - idHTTP1.Request.UserAgent := EnCrypt('AGENTE_CACIC');
578   - idHTTP1.Request.Username := EnCrypt('USER_CACIC');
579   - idHTTP1.Request.Password := EnCrypt('PW_CACIC');
  522 + idHTTP1.Request.UserAgent := g_oCacic.enCrypt('AGENTE_CACIC');
  523 + idHTTP1.Request.Username := g_oCacic.enCrypt('USER_CACIC');
  524 + idHTTP1.Request.Password := g_oCacic.enCrypt('PW_CACIC');
580 525 idHTTP1.Request.Accept := 'text/html, */*';
581 526 idHTTP1.Request.BasicAuthentication := true;
582 527 idHTTP1.Request.ContentLength := -1;
... ... @@ -665,22 +610,6 @@ var
665 610 end;
666 611 end;
667 612  
668   -
669   -// Pad a string with zeros so that it is a multiple of size
670   -function TfrmMapaCacic.PadWithZeros(const str : string; size : integer) : string;
671   -var
672   - origsize, i : integer;
673   -begin
674   - Result := str;
675   - origsize := Length(Result);
676   - if ((origsize mod size) <> 0) or (origsize = 0) then
677   - begin
678   - SetLength(Result,((origsize div size)+1)*size);
679   - for i := origsize+1 to Length(Result) do
680   - Result[i] := #0;
681   - end;
682   -end;
683   -
684 613 function TfrmMapaCacic.GetFolderDate(Folder: string): TDateTime;
685 614 var
686 615 Rec: TSearchRec;
... ... @@ -702,98 +631,6 @@ begin
702 631 end;
703 632 end;
704 633  
705   -// Encrypt a string and return the Base64 encoded result
706   -function TfrmMapaCacic.EnCrypt(p_Data : String) : String;
707   -var
708   - l_Cipher : TDCP_rijndael;
709   - l_Data, l_Key, l_IV : string;
710   -begin
711   - Try
712   - // Pad Key, IV and Data with zeros as appropriate
713   - l_Key := PadWithZeros(constCipherKey,constKeySize);
714   - l_IV := PadWithZeros(constIV,constBlockSize);
715   - l_Data := PadWithZeros(p_Data,constBlockSize);
716   -
717   - // Create the cipher and initialise according to the key length
718   - l_Cipher := TDCP_rijndael.Create(nil);
719   - if Length(constCipherKey) <= 16 then
720   - l_Cipher.Init(l_Key[1],128,@l_IV[1])
721   - else if Length(constCipherKey) <= 24 then
722   - l_Cipher.Init(l_Key[1],192,@l_IV[1])
723   - else
724   - l_Cipher.Init(l_Key[1],256,@l_IV[1]);
725   -
726   - // Encrypt the data
727   - l_Cipher.EncryptCBC(l_Data[1],l_Data[1],Length(l_Data));
728   -
729   - // Free the cipher and clear sensitive information
730   - l_Cipher.Free;
731   - FillChar(l_Key[1],Length(l_Key),0);
732   -
733   - // Return the Base64 encoded result
734   - Result := Base64EncodeStr(l_Data);
735   - Except
736   - log_diario('Erro no Processo de Criptografia');
737   - End;
738   -end;
739   -
740   -function TfrmMapaCacic.DeCrypt(p_Data : String) : String;
741   -var
742   - l_Cipher : TDCP_rijndael;
743   - l_Data, l_Key, l_IV : string;
744   -begin
745   - Try
746   - // Pad Key and IV with zeros as appropriate
747   - l_Key := PadWithZeros(constCipherKey,constKeySize);
748   - l_IV := PadWithZeros(constIV,constBlockSize);
749   -
750   - // Decode the Base64 encoded string
751   - l_Data := Base64DecodeStr(p_Data);
752   -
753   - // Create the cipher and initialise according to the key length
754   - l_Cipher := TDCP_rijndael.Create(nil);
755   - if Length(constCipherKey) <= 16 then
756   - l_Cipher.Init(l_Key[1],128,@l_IV[1])
757   - else if Length(constCipherKey) <= 24 then
758   - l_Cipher.Init(l_Key[1],192,@l_IV[1])
759   - else
760   - l_Cipher.Init(l_Key[1],256,@l_IV[1]);
761   -
762   - // Decrypt the data
763   - l_Cipher.DecryptCBC(l_Data[1],l_Data[1],Length(l_Data));
764   -
765   - // Free the cipher and clear sensitive information
766   - l_Cipher.Free;
767   - FillChar(l_Key[1],Length(l_Key),0);
768   - log_DEBUG('DeCriptografia(ATIVADA) de "'+p_Data+'" => "'+l_Data+'"');
769   - // Return the result
770   - Result := trim(l_Data);
771   - Except
772   - log_diario('Erro no Processo de Decriptografia');
773   - End;
774   -end;
775   -
776   -function TfrmMapaCacic.HomeDrive : string;
777   -var
778   -WinDir : array [0..144] of char;
779   -begin
780   - GetWindowsDirectory (WinDir, 144);
781   - Result := StrPas (WinDir);
782   -end;
783   -
784   -Function TfrmMapaCacic.Implode(p_Array : TStrings ; p_Separador : String) : String;
785   -var intAux : integer;
786   - strAux : string;
787   -Begin
788   - strAux := '';
789   - For intAux := 0 To p_Array.Count -1 do
790   - Begin
791   - if (strAux<>'') then strAux := strAux + p_Separador;
792   - strAux := strAux + p_Array[intAux];
793   - End;
794   - Implode := strAux;
795   -end;
796   -
797 634 Function TfrmMapaCacic.CipherClose(p_DatFileName : string; p_tstrCipherOpened : TStrings) : String;
798 635 var strCipherOpenImploded : string;
799 636 txtFileDatFile : TextFile;
... ... @@ -806,9 +643,9 @@ begin
806 643 Rewrite (txtFileDatFile);
807 644 Append(txtFileDatFile);
808 645  
809   - strCipherOpenImploded := Implode(p_tstrCipherOpened,'=CacicIsFree=');
  646 + strCipherOpenImploded := g_oCacic.implode(p_tstrCipherOpened,'=CacicIsFree=');
810 647 log_DEBUG('Rotina de Fechamento do cacic2.dat ATIVANDO criptografia.');
811   - strCipherClosed := EnCrypt(strCipherOpenImploded);
  648 + strCipherClosed := g_oCacic.enCrypt(strCipherOpenImploded);
812 649 log_DEBUG('Rotina de Fechamento do cacic2.dat RESTAURANDO estado da criptografia.');
813 650  
814 651 Writeln(txtFileDatFile,strCipherClosed); {Grava a string Texto no arquivo texto}
... ... @@ -840,12 +677,12 @@ begin
840 677 Readln(v_DatFile,v_strCipherClosed);
841 678 while not EOF(v_DatFile) do Readln(v_DatFile,v_strCipherClosed);
842 679 CloseFile(v_DatFile);
843   - strCipherOpened:= DeCrypt(v_strCipherClosed);
  680 + strCipherOpened:= g_oCacic.deCrypt(v_strCipherClosed);
844 681 end;
845 682 if (trim(strCipherOpened)<>'') then
846   - Result := explode(strCipherOpened,'=CacicIsFree=')
  683 + Result := g_oCacic.explode(strCipherOpened,'=CacicIsFree=')
847 684 else
848   - Result := explode('Configs.ID_SO=CacicIsFree='+ g_oCacic.getWindowsStrId() +'=CacicIsFree=Configs.Endereco_WS=CacicIsFree=/cacic2/ws/','=CacicIsFree=');
  685 + Result := g_oCacic.explode('Configs.ID_SO'+g_oCacic.getSeparatorKey+g_oCacic.getWindowsStrId() +g_oCacic.getSeparatorKey+'Configs.Endereco_WS'+g_oCacic.getSeparatorKey+'/cacic2/ws/',g_oCacic.getSeparatorKey);
849 686  
850 687 if Result.Count mod 2 = 0 then
851 688 Result.Add('');
... ... @@ -886,7 +723,7 @@ var RegEditSet: TRegistry;
886 723 ListaAuxSet : TStrings;
887 724 I : Integer;
888 725 begin
889   - ListaAuxSet := Explode(Chave, ');
  726 + ListaAuxSet := g_oCacic.explode(Chave, ');
890 727 strRootKey := ListaAuxSet[0];
891 728 For I := 1 To ListaAuxSet.Count - 2 Do strKey := strKey + ListaAuxSet[I] + '\';
892 729 strValue := ListaAuxSet[ListaAuxSet.Count - 1];
... ... @@ -924,7 +761,6 @@ begin
924 761 RegEditSet.Free;
925 762 end;
926 763  
927   -
928 764 function TfrmMapaCacic.GetRootKey(strRootKey: String): HKEY;
929 765 begin
930 766 if Trim(strRootKey) = 'HKEY_LOCAL_MACHINE' Then Result := HKEY_LOCAL_MACHINE
... ... @@ -963,19 +799,19 @@ begin
963 799  
964 800 strId_unid_organizacional_nivel1 := GetValorDatMemoria('Patrimonio.id_unid_organizacional_nivel1',tStringsCipherOpened);
965 801 if (strId_unid_organizacional_nivel1='') then
966   - strId_unid_organizacional_nivel1 := DeCrypt(XML.XML_RetornaValor('ID_UON1', p_strConfigs));
  802 + strId_unid_organizacional_nivel1 := g_oCacic.deCrypt(XML.XML_RetornaValor('ID_UON1', p_strConfigs));
967 803  
968 804 strId_unid_organizacional_nivel1a := GetValorDatMemoria('Patrimonio.id_unid_organizacional_nivel1a',tStringsCipherOpened);
969 805 if (strId_unid_organizacional_nivel1a='') then
970   - strId_unid_organizacional_nivel1a := DeCrypt(XML.XML_RetornaValor('ID_UON1a', p_strConfigs));
  806 + strId_unid_organizacional_nivel1a := g_oCacic.deCrypt(XML.XML_RetornaValor('ID_UON1a', p_strConfigs));
971 807  
972 808 strId_unid_organizacional_nivel2 := GetValorDatMemoria('Patrimonio.id_unid_organizacional_nivel2',tStringsCipherOpened);
973 809 if (strId_unid_organizacional_nivel2='') then
974   - strId_unid_organizacional_nivel2 := DeCrypt(XML.XML_RetornaValor('ID_UON2', p_strConfigs));
  810 + strId_unid_organizacional_nivel2 := g_oCacic.deCrypt(XML.XML_RetornaValor('ID_UON2', p_strConfigs));
975 811  
976 812 strId_Local := GetValorDatMemoria('Patrimonio.id_local',tStringsCipherOpened);
977 813 if (strId_Local='') then
978   - strId_Local := DeCrypt(XML.XML_RetornaValor('ID_LOCAL', p_strConfigs));
  814 + strId_Local := g_oCacic.deCrypt(XML.XML_RetornaValor('ID_LOCAL', p_strConfigs));
979 815  
980 816 Try
981 817 cb_id_unid_organizacional_nivel1.ItemIndex := cb_id_unid_organizacional_nivel1.Items.IndexOf(RetornaValorVetorUON1(strId_unid_organizacional_nivel1));
... ... @@ -991,11 +827,11 @@ begin
991 827 Except
992 828 end;
993 829  
994   - lbEtiqueta1.Caption := DeCrypt(XML.XML_RetornaValor('te_etiqueta1', p_strConfigs));
995   - lbEtiqueta1a.Caption := DeCrypt(XML.XML_RetornaValor('te_etiqueta1a', p_strConfigs));
  830 + lbEtiqueta1.Caption := g_oCacic.deCrypt(XML.XML_RetornaValor('te_etiqueta1', p_strConfigs));
  831 + lbEtiqueta1a.Caption := g_oCacic.deCrypt(XML.XML_RetornaValor('te_etiqueta1a', p_strConfigs));
996 832  
997 833 strTe_localizacao_complementar := GetValorDatMemoria('Patrimonio.te_localizacao_complementar',tStringsCipherOpened);
998   - if (strTe_localizacao_complementar='') then strTe_localizacao_complementar := DeCrypt(XML.XML_RetornaValor('TE_LOC_COMPL', p_strConfigs));
  834 + if (strTe_localizacao_complementar='') then strTe_localizacao_complementar := g_oCacic.deCrypt(XML.XML_RetornaValor('TE_LOC_COMPL', p_strConfigs));
999 835  
1000 836 // Tentarei buscar informação gravada no Registry
1001 837 strTe_info_patrimonio1 := GetValorChaveRegEdit('HKEY_LOCAL_MACHINE\SOFTWARE\Dataprev\Patrimonio\te_info_patrimonio1');
... ... @@ -1003,13 +839,13 @@ begin
1003 839 Begin
1004 840 strTe_info_patrimonio1 := GetValorDatMemoria('Patrimonio.te_info_patrimonio1',tStringsCipherOpened);
1005 841 End;
1006   - if (strTe_info_patrimonio1='') then strTe_info_patrimonio1 := DeCrypt(XML.XML_RetornaValor('TE_INFO1', p_strConfigs));
  842 + if (strTe_info_patrimonio1='') then strTe_info_patrimonio1 := g_oCacic.deCrypt(XML.XML_RetornaValor('TE_INFO1', p_strConfigs));
1007 843  
1008 844 strTe_info_patrimonio2 := GetValorDatMemoria('Patrimonio.te_info_patrimonio2',tStringsCipherOpened);
1009   - if (strTe_info_patrimonio2='') then strTe_info_patrimonio2 := DeCrypt(XML.XML_RetornaValor('TE_INFO2', p_strConfigs));
  845 + if (strTe_info_patrimonio2='') then strTe_info_patrimonio2 := g_oCacic.deCrypt(XML.XML_RetornaValor('TE_INFO2', p_strConfigs));
1010 846  
1011 847 strTe_info_patrimonio3 := GetValorDatMemoria('Patrimonio.te_info_patrimonio3',tStringsCipherOpened);
1012   - if (strTe_info_patrimonio3='') then strTe_info_patrimonio3 := DeCrypt(XML.XML_RetornaValor('TE_INFO3', p_strConfigs));
  848 + if (strTe_info_patrimonio3='') then strTe_info_patrimonio3 := g_oCacic.deCrypt(XML.XML_RetornaValor('TE_INFO3', p_strConfigs));
1013 849  
1014 850 // Tentarei buscar informação gravada no Registry
1015 851 strTe_info_patrimonio4 := GetValorChaveRegEdit('HKEY_LOCAL_MACHINE\SOFTWARE\Dataprev\Patrimonio\te_info_patrimonio4');
... ... @@ -1017,13 +853,13 @@ begin
1017 853 Begin
1018 854 strTe_info_patrimonio4 := GetValorDatMemoria('Patrimonio.te_info_patrimonio4',tStringsCipherOpened);
1019 855 End;
1020   - if (strTe_info_patrimonio4='') then strTe_info_patrimonio4 := DeCrypt(XML.XML_RetornaValor('TE_INFO4', p_strConfigs));
  856 + if (strTe_info_patrimonio4='') then strTe_info_patrimonio4 := g_oCacic.deCrypt(XML.XML_RetornaValor('TE_INFO4', p_strConfigs));
1021 857  
1022 858 strTe_info_patrimonio5 := GetValorDatMemoria('Patrimonio.te_info_patrimonio5',tStringsCipherOpened);
1023   - if (strTe_info_patrimonio5='') then strTe_info_patrimonio5 := DeCrypt(XML.XML_RetornaValor('TE_INFO5', p_strConfigs));
  859 + if (strTe_info_patrimonio5='') then strTe_info_patrimonio5 := g_oCacic.deCrypt(XML.XML_RetornaValor('TE_INFO5', p_strConfigs));
1024 860  
1025 861 strTe_info_patrimonio6 := GetValorDatMemoria('Patrimonio.te_info_patrimonio6',tStringsCipherOpened);
1026   - if (strTe_info_patrimonio6='') then strTe_info_patrimonio6 := DeCrypt(XML.XML_RetornaValor('TE_INFO6', p_strConfigs));
  862 + if (strTe_info_patrimonio6='') then strTe_info_patrimonio6 := g_oCacic.deCrypt(XML.XML_RetornaValor('TE_INFO6', p_strConfigs));
1027 863 end;
1028 864  
1029 865 procedure TfrmMapaCacic.MontaCombos(p_strConfigs : String);
... ... @@ -1057,7 +893,7 @@ begin
1057 893 strTagName := ''
1058 894 else if (Parser.CurPartType in [ptContent, ptCData]) and (strTagName='IT1')Then
1059 895 Begin
1060   - strAux1 := DeCrypt(Parser.CurContent);
  896 + strAux1 := g_oCacic.deCrypt(Parser.CurContent);
1061 897 if (strItemName = 'ID1') then
1062 898 Begin
1063 899 VetorUON1[i].id1 := strAux1;
... ... @@ -1089,7 +925,7 @@ begin
1089 925 strTagName := ''
1090 926 else if (Parser.CurPartType in [ptContent, ptCData]) and (strTagName='IT1A')Then
1091 927 Begin
1092   - strAux1 := DeCrypt(Parser.CurContent);
  928 + strAux1 := g_oCacic.deCrypt(Parser.CurContent);
1093 929 if (strItemName = 'ID1') then
1094 930 Begin
1095 931 VetorUON1a[i].id1 := strAux1;
... ... @@ -1135,7 +971,7 @@ begin
1135 971 strTagName := ''
1136 972 else if (Parser.CurPartType in [ptContent, ptCData]) and (strTagName='IT2')Then
1137 973 Begin
1138   - strAux1 := DeCrypt(Parser.CurContent);
  974 + strAux1 := g_oCacic.deCrypt(Parser.CurContent);
1139 975 if (strItemName = 'ID1A') then
1140 976 Begin
1141 977 VetorUON2[i].id1a := strAux1;
... ... @@ -1250,7 +1086,7 @@ begin
1250 1086 Log_debug('cb_id_unid_organizacional_nivel1a.ItemIndex = '+intToStr(cb_id_unid_organizacional_nivel1a.ItemIndex));
1251 1087  
1252 1088 tstrAux := TStrings.Create;
1253   - tstrAux := Explode(VetorUON1aFiltrado[cb_id_unid_organizacional_nivel1a.ItemIndex],'#');
  1089 + tstrAux := g_oCacic.explode(VetorUON1aFiltrado[cb_id_unid_organizacional_nivel1a.ItemIndex],'#');
1254 1090  
1255 1091 strIdUON1a := tstrAux[0];
1256 1092 strIdLocal := tstrAux[1];
... ... @@ -1297,15 +1133,15 @@ var strIdUON1,
1297 1133 tstrListAux : TStringList;
1298 1134 tstrAux : TStrings;
1299 1135 begin
1300   - Matar(strPathCacic,'aguarde_CACIC.txt');
  1136 + Matar(g_oCacic.getCacicPath,'aguarde_CACIC.txt');
1301 1137  
1302   - if FileExists(strPathCacic + 'aguarde_CACIC.txt') then
  1138 + if FileExists(g_oCacic.getCacicPath + 'aguarde_CACIC.txt') then
1303 1139 MessageDLG(#13#10+'ATENÇÃO!'+#13#10#13#10+
1304 1140 'Para o envio das informações, é necessário finalizar o Agente Principal do CACIC.',mtError,[mbOK],0)
1305 1141 else
1306 1142 Begin
1307 1143 tstrAux := TStrings.Create;
1308   - tstrAux := explode(VetorUON2Filtrado[cb_id_unid_organizacional_nivel2.ItemIndex],'#');
  1144 + tstrAux := g_oCacic.explode(VetorUON2Filtrado[cb_id_unid_organizacional_nivel2.ItemIndex],'#');
1309 1145 Try
1310 1146 strIdUON1 := VetorUON1[cb_id_unid_organizacional_nivel1.ItemIndex].id1;
1311 1147 strIdUON2 := tstrAux[0];
... ... @@ -1313,65 +1149,37 @@ begin
1313 1149 Except
1314 1150 end;
1315 1151  
1316   - tstrAux := explode(VetorUON1aFiltrado[cb_id_unid_organizacional_nivel1a.ItemIndex],'#');
  1152 + tstrAux := g_oCacic.explode(VetorUON1aFiltrado[cb_id_unid_organizacional_nivel1a.ItemIndex],'#');
1317 1153 Try
1318 1154 strIdUON1a := tstrAux[0];
1319 1155 Except
1320 1156 end;
1321 1157  
1322   -<<<<<<< .mine
1323 1158 tstrAux.Free;
1324 1159  
1325   -=======
1326   ->>>>>>> .r729
1327   - // Assim, o envio será incondicional! - 01/12/2006 - Anderson Peterle
1328   - // if (strAux1 <> strId_unid_organizacional_nivel1) or
1329   - // (strAux2 <> strId_unid_organizacional_nivel2) or
1330   - // (ed_te_localizacao_complementar.Text <> strTe_localizacao_complementar) or
1331   - // (ed_te_info_patrimonio1.Text <> strTe_info_patrimonio1) or
1332   - // (ed_te_info_patrimonio2.Text <> strTe_info_patrimonio2) or
1333   - // (ed_te_info_patrimonio3.Text <> strTe_info_patrimonio3) or
1334   - // (ed_te_info_patrimonio4.Text <> strTe_info_patrimonio4) or
1335   - // (ed_te_info_patrimonio5.Text <> strTe_info_patrimonio5) or
1336   - // (ed_te_info_patrimonio6.Text <> strTe_info_patrimonio6) then
1337   - // begin
1338   -
1339   -<<<<<<< .mine
1340   - Mensagem('Enviando Informações Coletadas ao Banco de Dados...',false,intPausaPadrao div 3);
1341   -=======
  1160 + Mensagem('Enviando Informações Coletadas ao Banco de Dados...',false,intPausaPadrao div 3);
  1161 +
1342 1162 // Envio dos Dados Coletados ao Banco de Dados
1343 1163 tstrListAux := TStringList.Create;
1344   - tstrListAux.Values['te_node_address'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NODE_ADDRESS' , frmMapaCacic.tStringsCipherOpened));
1345   - tstrListAux.Values['id_so'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('Configs.ID_SO' , frmMapaCacic.tStringsCipherOpened));
1346   - tstrListAux.Values['te_so'] := frmMapaCacic.EnCrypt(g_oCacic.getWindowsStrId());
1347   - tstrListAux.Values['id_ip_rede'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.ID_IP_REDE' , frmMapaCacic.tStringsCipherOpened));
1348   - tstrListAux.Values['te_ip'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_IP' , frmMapaCacic.tStringsCipherOpened));
1349   - tstrListAux.Values['te_nome_computador'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NOME_COMPUTADOR' , frmMapaCacic.tStringsCipherOpened));
1350   - tstrListAux.Values['te_workgroup'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_WORKGROUP' , frmMapaCacic.tStringsCipherOpened));
1351   - tstrListAux.Values['id_usuario'] := frmMapaCacic.EnCrypt(frmMapaCacic.strId_usuario);
1352   ->>>>>>> .r729
1353   -
1354   - // Envio dos Dados Coletados ao Banco de Dados
1355   - tstrListAux := TStringList.Create;
1356   - tstrListAux.Values['te_node_address'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NODE_ADDRESS' , frmMapaCacic.tStringsCipherOpened));
1357   - tstrListAux.Values['id_so'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('Configs.ID_SO' , frmMapaCacic.tStringsCipherOpened));
1358   - tstrListAux.Values['te_so'] := frmMapaCacic.EnCrypt(str_te_so);
1359   - tstrListAux.Values['id_ip_rede'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.ID_IP_REDE' , frmMapaCacic.tStringsCipherOpened));
1360   - tstrListAux.Values['te_ip'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_IP' , frmMapaCacic.tStringsCipherOpened));
1361   - tstrListAux.Values['te_nome_computador'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NOME_COMPUTADOR' , frmMapaCacic.tStringsCipherOpened));
1362   - tstrListAux.Values['te_workgroup'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_WORKGROUP' , frmMapaCacic.tStringsCipherOpened));
1363   - tstrListAux.Values['id_usuario'] := frmMapaCacic.EnCrypt(frmMapaCacic.strId_usuario);
1364   -
1365   - tstrListAux.Values['id_unid_organizacional_nivel1'] := frmMapaCacic.EnCrypt(strIdUON1);
1366   - tstrListAux.Values['id_unid_organizacional_nivel1a']:= frmMapaCacic.EnCrypt(strIdUON1A);
1367   - tstrListAux.Values['id_unid_organizacional_nivel2'] := frmMapaCacic.EnCrypt(strIdUON2);
1368   - tstrListAux.Values['te_localizacao_complementar' ] := frmMapaCacic.EnCrypt(ed_te_localizacao_complementar.Text);
1369   - tstrListAux.Values['te_info_patrimonio1' ] := frmMapaCacic.EnCrypt(ed_te_info_patrimonio1.Text);
1370   - tstrListAux.Values['te_info_patrimonio2' ] := frmMapaCacic.EnCrypt(ed_te_info_patrimonio2.Text);
1371   - tstrListAux.Values['te_info_patrimonio3' ] := frmMapaCacic.EnCrypt(ed_te_info_patrimonio3.Text);
1372   - tstrListAux.Values['te_info_patrimonio4' ] := frmMapaCacic.EnCrypt(ed_te_info_patrimonio4.Text);
1373   - tstrListAux.Values['te_info_patrimonio5' ] := frmMapaCacic.EnCrypt(ed_te_info_patrimonio5.Text);
1374   - tstrListAux.Values['te_info_patrimonio6' ] := frmMapaCacic.EnCrypt(ed_te_info_patrimonio6.Text);
  1164 + tstrListAux.Values['te_node_address'] := g_oCacic.enCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NODE_ADDRESS' , frmMapaCacic.tStringsCipherOpened));
  1165 + tstrListAux.Values['id_so'] := g_oCacic.enCrypt(frmMapaCacic.GetValorDatMemoria('Configs.ID_SO' , frmMapaCacic.tStringsCipherOpened));
  1166 + tstrListAux.Values['te_so'] := g_oCacic.enCrypt(g_oCacic.getWindowsStrId());
  1167 + tstrListAux.Values['id_ip_rede'] := g_oCacic.enCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.ID_IP_REDE' , frmMapaCacic.tStringsCipherOpened));
  1168 + tstrListAux.Values['te_ip'] := g_oCacic.enCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_IP' , frmMapaCacic.tStringsCipherOpened));
  1169 + tstrListAux.Values['te_nome_computador'] := g_oCacic.enCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NOME_COMPUTADOR' , frmMapaCacic.tStringsCipherOpened));
  1170 + tstrListAux.Values['te_workgroup'] := g_oCacic.enCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_WORKGROUP' , frmMapaCacic.tStringsCipherOpened));
  1171 + tstrListAux.Values['id_usuario'] := g_oCacic.enCrypt(frmMapaCacic.strId_usuario);
  1172 +
  1173 + tstrListAux.Values['id_unid_organizacional_nivel1'] := g_oCacic.enCrypt(strIdUON1);
  1174 + tstrListAux.Values['id_unid_organizacional_nivel1a']:= g_oCacic.enCrypt(strIdUON1A);
  1175 + tstrListAux.Values['id_unid_organizacional_nivel2'] := g_oCacic.enCrypt(strIdUON2);
  1176 + tstrListAux.Values['te_localizacao_complementar' ] := g_oCacic.enCrypt(ed_te_localizacao_complementar.Text);
  1177 + tstrListAux.Values['te_info_patrimonio1' ] := g_oCacic.enCrypt(ed_te_info_patrimonio1.Text);
  1178 + tstrListAux.Values['te_info_patrimonio2' ] := g_oCacic.enCrypt(ed_te_info_patrimonio2.Text);
  1179 + tstrListAux.Values['te_info_patrimonio3' ] := g_oCacic.enCrypt(ed_te_info_patrimonio3.Text);
  1180 + tstrListAux.Values['te_info_patrimonio4' ] := g_oCacic.enCrypt(ed_te_info_patrimonio4.Text);
  1181 + tstrListAux.Values['te_info_patrimonio5' ] := g_oCacic.enCrypt(ed_te_info_patrimonio5.Text);
  1182 + tstrListAux.Values['te_info_patrimonio6' ] := g_oCacic.enCrypt(ed_te_info_patrimonio6.Text);
1375 1183  
1376 1184 log_DEBUG('Informações para contato com mapa_set_patrimonio:');
1377 1185 log_DEBUG('te_node_address: '+tstrListAux.Values['te_node_address']);
... ... @@ -1416,76 +1224,76 @@ procedure TfrmMapaCacic.MontaInterface(p_strConfigs : String);
1416 1224 Begin
1417 1225 Mensagem('Montando Interface para Coleta de Informações...',false,intPausaPadrao div 3);
1418 1226  
1419   - lbEtiqueta1.Caption := DeCrypt(XML.XML_RetornaValor('te_etiqueta1', p_strConfigs));
  1227 + lbEtiqueta1.Caption := g_oCacic.deCrypt(XML.XML_RetornaValor('te_etiqueta1', p_strConfigs));
1420 1228 lbEtiqueta1.Visible := true;
1421   - cb_id_unid_organizacional_nivel1.Hint := DeCrypt(XML.XML_RetornaValor('te_help_etiqueta1', p_strConfigs));
  1229 + cb_id_unid_organizacional_nivel1.Hint := g_oCacic.deCrypt(XML.XML_RetornaValor('te_help_etiqueta1', p_strConfigs));
1422 1230 cb_id_unid_organizacional_nivel1.Visible := true;
1423 1231  
1424   - lbEtiqueta1a.Caption := DeCrypt(XML.XML_RetornaValor('te_etiqueta1a', p_strConfigs));
  1232 + lbEtiqueta1a.Caption := g_oCacic.deCrypt(XML.XML_RetornaValor('te_etiqueta1a', p_strConfigs));
1425 1233 lbEtiqueta1a.Visible := true;
1426   - cb_id_unid_organizacional_nivel1a.Hint := DeCrypt(XML.XML_RetornaValor('te_help_etiqueta1a', p_strConfigs));
  1234 + cb_id_unid_organizacional_nivel1a.Hint := g_oCacic.deCrypt(XML.XML_RetornaValor('te_help_etiqueta1a', p_strConfigs));
1427 1235 cb_id_unid_organizacional_nivel1a.Visible := true;
1428 1236  
1429   - lbEtiqueta2.Caption := DeCrypt(XML.XML_RetornaValor('te_etiqueta2', p_strConfigs));
  1237 + lbEtiqueta2.Caption := g_oCacic.deCrypt(XML.XML_RetornaValor('te_etiqueta2', p_strConfigs));
1430 1238 lbEtiqueta2.Visible := true;
1431   - cb_id_unid_organizacional_nivel2.Hint := DeCrypt(XML.XML_RetornaValor('te_help_etiqueta2', p_strConfigs));
  1239 + cb_id_unid_organizacional_nivel2.Hint := g_oCacic.deCrypt(XML.XML_RetornaValor('te_help_etiqueta2', p_strConfigs));
1432 1240 cb_id_unid_organizacional_nivel2.Visible := true;
1433 1241  
1434   - lbEtiqueta3.Caption := DeCrypt(XML.XML_RetornaValor('te_etiqueta3', p_strConfigs));
  1242 + lbEtiqueta3.Caption := g_oCacic.deCrypt(XML.XML_RetornaValor('te_etiqueta3', p_strConfigs));
1435 1243 lbEtiqueta3.Visible := true;
1436 1244 ed_te_localizacao_complementar.Text := strTe_localizacao_complementar;
1437 1245 ed_te_localizacao_complementar.Visible := true;
1438 1246  
1439   - if (DeCrypt(XML.XML_RetornaValor('in_exibir_etiqueta4', p_strConfigs)) = 'S') then
  1247 + if (g_oCacic.deCrypt(XML.XML_RetornaValor('in_exibir_etiqueta4', p_strConfigs)) = 'S') then
1440 1248 begin
1441   - lbEtiqueta4.Caption := DeCrypt(XML.XML_RetornaValor('te_etiqueta4', p_strConfigs));
  1249 + lbEtiqueta4.Caption := g_oCacic.deCrypt(XML.XML_RetornaValor('te_etiqueta4', p_strConfigs));
1442 1250 lbEtiqueta4.Visible := true;
1443   - ed_te_info_patrimonio1.Hint := DeCrypt(XML.XML_RetornaValor('te_help_etiqueta4', p_strConfigs));
  1251 + ed_te_info_patrimonio1.Hint := g_oCacic.deCrypt(XML.XML_RetornaValor('te_help_etiqueta4', p_strConfigs));
1444 1252 ed_te_info_patrimonio1.Text := strTe_info_patrimonio1;
1445 1253 ed_te_info_patrimonio1.visible := True;
1446 1254 end;
1447 1255  
1448   - if (DeCrypt(XML.XML_RetornaValor('in_exibir_etiqueta5', p_strConfigs)) = 'S') then
  1256 + if (g_oCacic.deCrypt(XML.XML_RetornaValor('in_exibir_etiqueta5', p_strConfigs)) = 'S') then
1449 1257 begin
1450   - lbEtiqueta5.Caption := DeCrypt(XML.XML_RetornaValor('te_etiqueta5', p_strConfigs));
  1258 + lbEtiqueta5.Caption := g_oCacic.deCrypt(XML.XML_RetornaValor('te_etiqueta5', p_strConfigs));
1451 1259 lbEtiqueta5.Visible := true;
1452   - ed_te_info_patrimonio2.Hint := DeCrypt(XML.XML_RetornaValor('te_help_etiqueta5', p_strConfigs));
  1260 + ed_te_info_patrimonio2.Hint := g_oCacic.deCrypt(XML.XML_RetornaValor('te_help_etiqueta5', p_strConfigs));
1453 1261 ed_te_info_patrimonio2.Text := strTe_info_patrimonio2;
1454 1262 ed_te_info_patrimonio2.visible := True;
1455 1263 end;
1456 1264  
1457   - if (DeCrypt(XML.XML_RetornaValor('in_exibir_etiqueta6', p_strConfigs)) = 'S') then
  1265 + if (g_oCacic.deCrypt(XML.XML_RetornaValor('in_exibir_etiqueta6', p_strConfigs)) = 'S') then
1458 1266 begin
1459   - lbEtiqueta6.Caption := DeCrypt(XML.XML_RetornaValor('te_etiqueta6', p_strConfigs));
  1267 + lbEtiqueta6.Caption := g_oCacic.deCrypt(XML.XML_RetornaValor('te_etiqueta6', p_strConfigs));
1460 1268 lbEtiqueta6.Visible := true;
1461   - ed_te_info_patrimonio3.Hint := DeCrypt(XML.XML_RetornaValor('te_help_etiqueta6', p_strConfigs));
  1269 + ed_te_info_patrimonio3.Hint := g_oCacic.deCrypt(XML.XML_RetornaValor('te_help_etiqueta6', p_strConfigs));
1462 1270 ed_te_info_patrimonio3.Text := strTe_info_patrimonio3;
1463 1271 ed_te_info_patrimonio3.visible := True;
1464 1272 end;
1465 1273  
1466   - if (DeCrypt(XML.XML_RetornaValor('in_exibir_etiqueta7', p_strConfigs)) = 'S') then
  1274 + if (g_oCacic.deCrypt(XML.XML_RetornaValor('in_exibir_etiqueta7', p_strConfigs)) = 'S') then
1467 1275 begin
1468   - lbEtiqueta7.Caption := DeCrypt(XML.XML_RetornaValor('te_etiqueta7', p_strConfigs));
  1276 + lbEtiqueta7.Caption := g_oCacic.deCrypt(XML.XML_RetornaValor('te_etiqueta7', p_strConfigs));
1469 1277 lbEtiqueta7.Visible := true;
1470   - ed_te_info_patrimonio4.Hint := DeCrypt(XML.XML_RetornaValor('te_help_etiqueta7', p_strConfigs));
  1278 + ed_te_info_patrimonio4.Hint := g_oCacic.deCrypt(XML.XML_RetornaValor('te_help_etiqueta7', p_strConfigs));
1471 1279 ed_te_info_patrimonio4.Text := strTe_info_patrimonio4;
1472 1280 ed_te_info_patrimonio4.visible := True;
1473 1281 end;
1474 1282  
1475   - if (DeCrypt(XML.XML_RetornaValor('in_exibir_etiqueta8', p_strConfigs)) = 'S') then
  1283 + if (g_oCacic.deCrypt(XML.XML_RetornaValor('in_exibir_etiqueta8', p_strConfigs)) = 'S') then
1476 1284 begin
1477   - lbEtiqueta8.Caption := DeCrypt(XML.XML_RetornaValor('te_etiqueta8', p_strConfigs));
  1285 + lbEtiqueta8.Caption := g_oCacic.deCrypt(XML.XML_RetornaValor('te_etiqueta8', p_strConfigs));
1478 1286 lbEtiqueta8.Visible := true;
1479   - ed_te_info_patrimonio5.Hint := DeCrypt(XML.XML_RetornaValor('te_help_etiqueta8', p_strConfigs));
  1287 + ed_te_info_patrimonio5.Hint := g_oCacic.deCrypt(XML.XML_RetornaValor('te_help_etiqueta8', p_strConfigs));
1480 1288 ed_te_info_patrimonio5.Text := strTe_info_patrimonio5;
1481 1289 ed_te_info_patrimonio5.visible := True;
1482 1290 end;
1483 1291  
1484   - if (DeCrypt(XML.XML_RetornaValor('in_exibir_etiqueta9', p_strConfigs)) = 'S') then
  1292 + if (g_oCacic.deCrypt(XML.XML_RetornaValor('in_exibir_etiqueta9', p_strConfigs)) = 'S') then
1485 1293 begin
1486   - lbEtiqueta9.Caption := DeCrypt(XML.XML_RetornaValor('te_etiqueta9', p_strConfigs));
  1294 + lbEtiqueta9.Caption := g_oCacic.deCrypt(XML.XML_RetornaValor('te_etiqueta9', p_strConfigs));
1487 1295 lbEtiqueta9.Visible := true;
1488   - ed_te_info_patrimonio6.Hint := DeCrypt(XML.XML_RetornaValor('te_help_etiqueta9', p_strConfigs));
  1296 + ed_te_info_patrimonio6.Hint := g_oCacic.deCrypt(XML.XML_RetornaValor('te_help_etiqueta9', p_strConfigs));
1489 1297 ed_te_info_patrimonio6.Text := strTe_info_patrimonio6;
1490 1298 ed_te_info_patrimonio6.visible := True;
1491 1299 end;
... ... @@ -1508,7 +1316,7 @@ var RegEditGet: TRegistry;
1508 1316 begin
1509 1317 try
1510 1318 Result := '';
1511   - ListaAuxGet := Explode(Chave, ');
  1319 + ListaAuxGet := g_oCacic.explode(Chave, ');
1512 1320  
1513 1321 strRootKey := ListaAuxGet[0];
1514 1322 For I := 1 To ListaAuxGet.Count - 2 Do strKey := strKey + ListaAuxGet[I] + '\';
... ... @@ -1562,45 +1370,6 @@ begin
1562 1370 Application.CreateForm(TfrmAcesso, frmAcesso);
1563 1371 end;
1564 1372  
1565   -function TfrmMapaCacic.IsAdmin: Boolean;
1566   -var hAccessToken: THandle;
1567   - ptgGroups: PTokenGroups;
1568   - dwInfoBufferSize: DWORD;
1569   - psidAdministrators: PSID;
1570   - x: Integer;
1571   - bSuccess: BOOL;
1572   -begin
1573   - Result := False;
1574   - bSuccess := OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True, hAccessToken);
1575   - if not bSuccess then
1576   - begin
1577   - if GetLastError = ERROR_NO_TOKEN then
1578   - bSuccess := OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, hAccessToken);
1579   - end;
1580   - if bSuccess then
1581   - begin
1582   - GetMem(ptgGroups, 1024);
1583   - bSuccess := GetTokenInformation(hAccessToken, TokenGroups, ptgGroups, 1024, dwInfoBufferSize);
1584   - CloseHandle(hAccessToken);
1585   - if bSuccess then
1586   - begin
1587   - AllocateAndInitializeSid(constSECURITY_NT_AUTHORITY, 2,
1588   - constSECURITY_BUILTIN_DOMAIN_RID,
1589   - constDOMAIN_ALIAS_RID_ADMINS,
1590   - 0, 0, 0, 0, 0, 0, psidAdministrators);
1591   - {$R-}
1592   - for x := 0 to ptgGroups.GroupCount - 1 do
1593   - if EqualSid(psidAdministrators, ptgGroups.Groups[x].Sid) then
1594   - begin
1595   - Result := True;
1596   - Break;
1597   - end;
1598   - {$R+}
1599   - FreeSid(psidAdministrators);
1600   - end;
1601   - FreeMem(ptgGroups);
1602   - end;
1603   -end;
1604 1373 // Baixada de http://www.infoeng.hpg.ig.com.br/borland_delphi_dicas_2.htm
1605 1374 function TfrmMapaCacic.LetrasDrives: string;
1606 1375 var
... ... @@ -1693,7 +1462,8 @@ End;
1693 1462 procedure TfrmMapaCacic.FormActivate(Sender: TObject);
1694 1463 var intAux : integer;
1695 1464 strLetrasDrives,
1696   - strRetorno : String;
  1465 + strRetorno,
  1466 + v_strCacicPath : String;
1697 1467 Request_mapa : TStringList;
1698 1468 begin
1699 1469 g_oCacic := TCACIC.Create();
... ... @@ -1708,15 +1478,16 @@ begin
1708 1478 Begin
1709 1479 // Varrer unidades C:\, D:\ e E:\ ... em busca da estrutura Cacic\cacic2.dat
1710 1480 strLetrasDrives := LetrasDrives;
1711   - strPathCacic := '';
  1481 +
  1482 + v_strCacicPath := '';
1712 1483 for intAux := 1 to length(strLetrasDrives) do
1713 1484 Begin
1714 1485 lbMensagens.Caption := 'Procurando Estrutura do Sistema CACIC em "'+strLetrasDrives[intAux] + ':\"';
1715 1486  
1716 1487 Log_Debug('Testando "'+strLetrasDrives[intAux] + ':\Cacic\cacic2.dat'+'"');
1717   - if (strPathCacic='') and (SearchFile(strLetrasDrives[intAux] + ':','\Cacic\cacic2.dat')) then
  1488 + if (v_strCacicPath='') and (SearchFile(strLetrasDrives[intAux] + ':','\Cacic\cacic2.dat')) then
1718 1489 Begin
1719   - strPathCacic := strLetrasDrives[intAux] + ':\Cacic;
  1490 + v_strCacicPath := strLetrasDrives[intAux] + ':\Cacic;
1720 1491 lbMensagens.Caption := 'Estrutura Encontrada!';
1721 1492 Log_Debug('Validado "'+strLetrasDrives[intAux] + ':\Cacic\cacic2.dat'+'"');
1722 1493 End
... ... @@ -1725,25 +1496,24 @@ begin
1725 1496 application.ProcessMessages;
1726 1497 End;
1727 1498  
1728   - if not (strPathCacic = '') then
  1499 + if not (v_strCacicPath = '') then
1729 1500 Begin
1730   - Matar(strPathCacic,'aguarde_CACIC.txt');
  1501 + g_oCacic.setCacicPath(v_strCacicPath);
  1502 + Matar(g_oCacic.getCacicPath,'aguarde_CACIC.txt');
1731 1503  
1732   - if FileExists(strPathCacic + 'aguarde_CACIC.txt') then
  1504 + if FileExists(g_oCacic.getCacicPath + 'aguarde_CACIC.txt') then
1733 1505 Begin
1734 1506 MessageDLG(#13#10+'ATENÇÃO! É necessário finalizar o Agente Principal do CACIC.',mtError,[mbOK],0);
1735 1507 Sair;
1736 1508 End;
1737 1509  
1738   - strDatFileName := strPathCacic + 'cacic2.dat'; // Algo como X:\Cacic\cacic2.dat
1739   -
1740 1510 boolDebugs := false;
1741   - if DirectoryExists(strPathCacic + 'Temp\Debugs') then
  1511 + if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then
1742 1512 Begin
1743   - if (FormatDateTime('ddmmyyyy', GetFolderDate(strPathCacic + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then
  1513 + if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then
1744 1514 Begin
1745 1515 boolDebugs := true;
1746   - log_DEBUG('Pasta "' + strPathCacic + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(strPathCacic + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');
  1516 + log_DEBUG('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');
1747 1517 End;
1748 1518 End;
1749 1519  
... ... @@ -1762,14 +1532,14 @@ begin
1762 1532 // Povoamento com dados de configurações da interface patrimonial
1763 1533 // Solicita ao servidor as configurações para a Coleta de Informações de Patrimônio
1764 1534 Request_mapa := TStringList.Create;
1765   - Request_mapa.Values['te_node_address'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NODE_ADDRESS' , frmMapaCacic.tStringsCipherOpened));
1766   - Request_mapa.Values['id_so'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('Configs.ID_SO' , frmMapaCacic.tStringsCipherOpened));
1767   - Request_mapa.Values['te_so'] := frmMapaCacic.EnCrypt(g_oCacic.getWindowsStrId());
1768   - Request_mapa.Values['id_ip_rede'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.ID_IP_REDE' , frmMapaCacic.tStringsCipherOpened));
1769   - Request_mapa.Values['te_ip'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_IP' , frmMapaCacic.tStringsCipherOpened));
1770   - Request_mapa.Values['te_nome_computador']:= frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NOME_COMPUTADOR', frmMapaCacic.tStringsCipherOpened));
1771   - Request_mapa.Values['te_workgroup'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_WORKGROUP' , frmMapaCacic.tStringsCipherOpened));
1772   - Request_mapa.Values['id_usuario'] := frmMapaCacic.EnCrypt(frmMapaCacic.strId_usuario);
  1535 + Request_mapa.Values['te_node_address'] := g_oCacic.enCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NODE_ADDRESS' , frmMapaCacic.tStringsCipherOpened));
  1536 + Request_mapa.Values['id_so'] := g_oCacic.enCrypt(frmMapaCacic.GetValorDatMemoria('Configs.ID_SO' , frmMapaCacic.tStringsCipherOpened));
  1537 + Request_mapa.Values['te_so'] := g_oCacic.enCrypt(g_oCacic.getWindowsStrId());
  1538 + Request_mapa.Values['id_ip_rede'] := g_oCacic.enCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.ID_IP_REDE' , frmMapaCacic.tStringsCipherOpened));
  1539 + Request_mapa.Values['te_ip'] := g_oCacic.enCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_IP' , frmMapaCacic.tStringsCipherOpened));
  1540 + Request_mapa.Values['te_nome_computador']:= g_oCacic.enCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NOME_COMPUTADOR', frmMapaCacic.tStringsCipherOpened));
  1541 + Request_mapa.Values['te_workgroup'] := g_oCacic.enCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_WORKGROUP' , frmMapaCacic.tStringsCipherOpened));
  1542 + Request_mapa.Values['id_usuario'] := g_oCacic.enCrypt(frmMapaCacic.strId_usuario);
1773 1543  
1774 1544 strRetorno := frmMapaCacic.ComunicaServidor('mapa_get_patrimonio.php', Request_mapa, '.');
1775 1545  
... ...