Commit e663a2b29a8cd20d7349010e885a222d04fc7b47

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

Exclusão para posterior reposição com versão 2.6-Beta-2

git-svn-id: http://svn.softwarepublico.gov.br/svn/cacic/cacic/trunk/agente-windows@959 fecfc0c7-e812-0410-ae72-849f08638ee7
col_anvi/col_anvi.cfg
@@ -1,38 +0,0 @@ @@ -1,38 +0,0 @@
1 --$A8  
2 --$B-  
3 --$C+  
4 --$D+  
5 --$E-  
6 --$F-  
7 --$G+  
8 --$H+  
9 --$I+  
10 --$J-  
11 --$K-  
12 --$L+  
13 --$M-  
14 --$N+  
15 --$O+  
16 --$P+  
17 --$Q-  
18 --$R-  
19 --$S-  
20 --$T-  
21 --$U-  
22 --$V+  
23 --$W-  
24 --$X+  
25 --$YD  
26 --$Z1  
27 --cg  
28 --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;  
29 --H+  
30 --W+  
31 --M  
32 --$M16384,1048576  
33 --K$00400000  
34 --LE"c:\arquivos de programas\borland\delphi7\Projects\Bpl"  
35 --LN"c:\arquivos de programas\borland\delphi7\Projects\Bpl"  
36 --w-UNSAFE_TYPE  
37 --w-UNSAFE_CODE  
38 --w-UNSAFE_CAST  
col_anvi/col_anvi.dof
@@ -1,136 +0,0 @@ @@ -1,136 +0,0 @@
1 -[FileVersion]  
2 -Version=7.0  
3 -[Compiler]  
4 -A=8  
5 -B=0  
6 -C=1  
7 -D=1  
8 -E=0  
9 -F=0  
10 -G=1  
11 -H=1  
12 -I=1  
13 -J=0  
14 -K=0  
15 -L=1  
16 -M=0  
17 -N=1  
18 -O=1  
19 -P=1  
20 -Q=0  
21 -R=0  
22 -S=0  
23 -T=0  
24 -U=0  
25 -V=1  
26 -W=0  
27 -X=1  
28 -Y=1  
29 -Z=1  
30 -ShowHints=1  
31 -ShowWarnings=1  
32 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;  
33 -NamespacePrefix=  
34 -SymbolDeprecated=1  
35 -SymbolLibrary=1  
36 -SymbolPlatform=1  
37 -UnitLibrary=1  
38 -UnitPlatform=1  
39 -UnitDeprecated=1  
40 -HResultCompat=1  
41 -HidingMember=1  
42 -HiddenVirtual=1  
43 -Garbage=1  
44 -BoundsError=1  
45 -ZeroNilCompat=1  
46 -StringConstTruncated=1  
47 -ForLoopVarVarPar=1  
48 -TypedConstVarPar=1  
49 -AsgToTypedConst=1  
50 -CaseLabelRange=1  
51 -ForVariable=1  
52 -ConstructingAbstract=1  
53 -ComparisonFalse=1  
54 -ComparisonTrue=1  
55 -ComparingSignedUnsigned=1  
56 -CombiningSignedUnsigned=1  
57 -UnsupportedConstruct=1  
58 -FileOpen=1  
59 -FileOpenUnitSrc=1  
60 -BadGlobalSymbol=1  
61 -DuplicateConstructorDestructor=1  
62 -InvalidDirective=1  
63 -PackageNoLink=1  
64 -PackageThreadVar=1  
65 -ImplicitImport=1  
66 -HPPEMITIgnored=1  
67 -NoRetVal=1  
68 -UseBeforeDef=1  
69 -ForLoopVarUndef=1  
70 -UnitNameMismatch=1  
71 -NoCFGFileFound=1  
72 -MessageDirective=1  
73 -ImplicitVariants=1  
74 -UnicodeToLocale=1  
75 -LocaleToUnicode=1  
76 -ImagebaseMultiple=1  
77 -SuspiciousTypecast=1  
78 -PrivatePropAccessor=1  
79 -UnsafeType=0  
80 -UnsafeCode=0  
81 -UnsafeCast=0  
82 -[Linker]  
83 -MapFile=0  
84 -OutputObjs=0  
85 -ConsoleApp=1  
86 -DebugInfo=0  
87 -RemoteSymbols=0  
88 -MinStackSize=16384  
89 -MaxStackSize=1048576  
90 -ImageBase=4194304  
91 -ExeDescription=  
92 -[Directories]  
93 -OutputDir=  
94 -UnitOutputDir=  
95 -PackageDLLOutputDir=  
96 -PackageDCPOutputDir=  
97 -SearchPath=  
98 -Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;dsnapcon;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;websnap;adortl;ibxpress;teeui;teedb;tee;dss;visualclx;visualdbclx;vclactnband;vclshlctrls;IntrawebDB_50_70;Intraweb_50_70;Rave50CLX;Rave50VCL;dclOffice2k;MSI_D7_Rtl  
99 -Conditionals=  
100 -DebugSourceDirs=  
101 -UsePackages=0  
102 -[Parameters]  
103 -RunParams=  
104 -HostApplication=  
105 -Launcher=  
106 -UseLauncher=0  
107 -DebugCWD=  
108 -[Language]  
109 -ActiveLang=  
110 -ProjectLang=  
111 -RootDir=C:\Arquivos de programas\Borland\Delphi7\Bin\  
112 -[Version Info]  
113 -IncludeVerInfo=1  
114 -AutoIncBuild=0  
115 -MajorVer=2  
116 -MinorVer=5  
117 -Release=0  
118 -Build=773  
119 -Debug=0  
120 -PreRelease=0  
121 -Special=0  
122 -Private=0  
123 -DLL=0  
124 -Locale=2070  
125 -CodePage=1252  
126 -[Version Info Keys]  
127 -CompanyName=Dataprev - Emp. de TI da Prev.Social - URES  
128 -FileDescription=Coletor de Informações de AntiVírus do Sistema CACIC  
129 -FileVersion=2.5.0.773  
130 -InternalName=  
131 -LegalCopyright=  
132 -LegalTrademarks=  
133 -OriginalFilename=  
134 -ProductName=Col_ANVI  
135 -ProductVersion=2.6  
136 -Comments=Baseado na licença GPL (General Public License)  
col_anvi/col_anvi.dpr
@@ -1,450 +0,0 @@ @@ -1,450 +0,0 @@
1 -(**  
2 ----------------------------------------------------------------------------------------------------------------------------------------------------------------  
3 -Copyright 2000, 2001, 2002, 2003, 2004, 2005 Dataprev - Empresa de Tecnologia e Informações da Previdência Social, Brasil  
4 -  
5 -Este arquivo é parte do programa CACIC - Configurador Automático e Coletor de Informações Computacionais  
6 -  
7 -O CACIC é um software livre; você pode redistribui-lo e/ou modifica-lo dentro dos termos da Licença Pública Geral GNU como  
8 -publicada pela Fundação do Software Livre (FSF); na versão 2 da Licença, ou (na sua opinião) qualquer versão.  
9 -  
10 -Este programa é distribuido na esperança que possa ser util, mas SEM NENHUMA GARANTIA; sem uma garantia implicita de ADEQUAÇÂO a qualquer  
11 -MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU para maiores detalhes.  
12 -  
13 -Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título "LICENCA.txt", junto com este programa, se não, escreva para a Fundação do Software  
14 -Livre(FSF) Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA  
15 ----------------------------------------------------------------------------------------------------------------------------------------------------------------  
16 -*)  
17 -  
18 -program col_anvi;  
19 -{$R *.res}  
20 -  
21 -uses  
22 - Windows,  
23 - classes,  
24 - sysutils,  
25 - Registry,  
26 - TLHELP32,  
27 - ShellAPI,  
28 - PJVersionInfo,  
29 - CACIC_Library in '..\CACIC_Library.pas';  
30 -  
31 -var  
32 - v_strCipherClosed : String;  
33 -  
34 -var  
35 - v_Debugs : boolean;  
36 -  
37 -var  
38 - v_tstrCipherOpened,  
39 - v_tstrCipherOpened1 : TStrings;  
40 -  
41 -var  
42 - g_oCacic : TCACIC;  
43 -  
44 -function VerFmt(const MS, LS: DWORD): string;  
45 - // Format the version number from the given DWORDs containing the info  
46 -begin  
47 - Result := Format('%d.%d.%d.%d',  
48 - [HiWord(MS), LoWord(MS), HiWord(LS), LoWord(LS)])  
49 -end;  
50 -  
51 -procedure log_diario(strMsg : String);  
52 -var  
53 - HistoricoLog : TextFile;  
54 - strDataArqLocal, strDataAtual : string;  
55 -begin  
56 - try  
57 - FileSetAttr (g_oCacic.getCacicPath + '\cacic2.log',0); // Retira os atributos do arquivo para evitar o erro FILE ACCESS DENIED em máquinas 2000  
58 - AssignFile(HistoricoLog,g_oCacic.getCacicPath + '\cacic2.log'); {Associa o arquivo a uma variável do tipo TextFile}  
59 - {$IOChecks off}  
60 - Reset(HistoricoLog); {Abre o arquivo texto}  
61 - {$IOChecks on}  
62 - if (IOResult <> 0) then // Arquivo não existe, será recriado.  
63 - begin  
64 - Rewrite (HistoricoLog);  
65 - Append(HistoricoLog);  
66 - Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now) + '======================> Iniciando o Log do CACIC <=======================');  
67 - end;  
68 - DateTimeToString(strDataArqLocal, 'yyyymmdd', FileDateToDateTime(Fileage(g_oCacic.getCacicPath + '\cacic2.log')));  
69 - DateTimeToString(strDataAtual , 'yyyymmdd', Date);  
70 - if (strDataAtual <> strDataArqLocal) then // Se o arquivo INI não é da data atual...  
71 - begin  
72 - Rewrite (HistoricoLog); //Cria/Recria o arquivo  
73 - Append(HistoricoLog);  
74 - Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now) + '======================> Iniciando o Log do CACIC <=======================');  
75 - end;  
76 - Append(HistoricoLog);  
77 - Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now) + '[Coletor ANVI] '+strMsg); {Grava a string Texto no arquivo texto}  
78 - CloseFile(HistoricoLog); {Fecha o arquivo texto}  
79 -// FileSetAttr (ExtractFilePath(Application.Exename) + '\cacic2.log',6); // Muda o atributo para arquivo de SISTEMA e OCULTO  
80 -  
81 - except  
82 - log_diario('Erro na gravação do log!');  
83 - end;  
84 -end;  
85 -  
86 -function GetVersionInfo(p_File: string):string;  
87 -var PJVersionInfo1: TPJVersionInfo;  
88 -begin  
89 - PJVersionInfo1 := TPJVersionInfo.Create(nil);  
90 - PJVersionInfo1.FileName := PChar(p_File);  
91 - Result := VerFmt(PJVersionInfo1.FixedFileInfo.dwFileVersionMS, PJVersionInfo1.FixedFileInfo.dwFileVersionLS);  
92 - PJVersionInfo1.Free;  
93 -end;  
94 -  
95 -  
96 -// Pad a string with zeros so that it is a multiple of size  
97 -function PadWithZeros(const str : string; size : integer) : string;  
98 -var  
99 - origsize, i : integer;  
100 -begin  
101 - Result := str;  
102 - origsize := Length(Result);  
103 - if ((origsize mod size) <> 0) or (origsize = 0) then  
104 - begin  
105 - SetLength(Result,((origsize div size)+1)*size);  
106 - for i := origsize+1 to Length(Result) do  
107 - Result[i] := #0;  
108 - end;  
109 -end;  
110 -  
111 -Procedure CipherClose(p_DatFileName : string; p_tstrCipherOpened : TStrings);  
112 -var v_strCipherOpenImploded : string;  
113 - v_DatFile : TextFile;  
114 -begin  
115 - try  
116 - FileSetAttr (p_DatFileName,0); // Retira os atributos do arquivo para evitar o erro FILE ACCESS DENIED em máquinas 2000  
117 - AssignFile(v_DatFile,p_DatFileName); {Associa o arquivo a uma variável do tipo TextFile}  
118 -  
119 - // Criação do arquivo .DAT  
120 - Rewrite (v_DatFile);  
121 - Append(v_DatFile);  
122 -  
123 - v_strCipherOpenImploded := g_oCacic.implode(p_tstrCipherOpened,g_oCacic.getSeparatorKey);  
124 - v_strCipherClosed := g_oCacic.enCrypt(v_strCipherOpenImploded);  
125 - Writeln(v_DatFile,v_strCipherClosed); {Grava a string Texto no arquivo texto}  
126 - CloseFile(v_DatFile);  
127 - except  
128 - end;  
129 -end;  
130 -  
131 -Function CipherOpen(p_DatFileName : string) : TStrings;  
132 -var v_DatFile : TextFile;  
133 - v_strCipherOpened,  
134 - v_strCipherClosed : string;  
135 -begin  
136 - v_strCipherOpened := '';  
137 - if FileExists(p_DatFileName) then  
138 - begin  
139 - AssignFile(v_DatFile,p_DatFileName);  
140 - {$IOChecks off}  
141 - Reset(v_DatFile);  
142 - {$IOChecks on}  
143 - if (IOResult <> 0) then // Arquivo não existe, será recriado.  
144 - begin  
145 - Rewrite (v_DatFile);  
146 - Append(v_DatFile);  
147 - end;  
148 -  
149 - Readln(v_DatFile,v_strCipherClosed);  
150 - while not EOF(v_DatFile) do Readln(v_DatFile,v_strCipherClosed);  
151 - CloseFile(v_DatFile);  
152 - v_strCipherOpened:= g_oCacic.deCrypt(v_strCipherClosed);  
153 - end;  
154 - if (trim(v_strCipherOpened)<>'') then  
155 - Result := g_oCacic.explode(v_strCipherOpened,g_oCacic.getSeparatorKey)  
156 - else  
157 - 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);  
158 -  
159 - if Result.Count mod 2 <> 0 then  
160 - Result.Add('');  
161 -end;  
162 -  
163 -Procedure SetValorDatMemoria(p_Chave : string; p_Valor : String; p_tstrCipherOpened : TStrings);  
164 -begin  
165 - // Exemplo: p_Chave => Configs.nu_ip_servidor : p_Valor => 10.71.0.120  
166 - if (p_tstrCipherOpened.IndexOf(p_Chave)<>-1) then  
167 - p_tstrCipherOpened[p_tstrCipherOpened.IndexOf(p_Chave)+1] := p_Valor  
168 - else  
169 - Begin  
170 - p_tstrCipherOpened.Add(p_Chave);  
171 - p_tstrCipherOpened.Add(p_Valor);  
172 - End;  
173 -end;  
174 -  
175 -procedure log_DEBUG(p_msg:string);  
176 -Begin  
177 - if v_Debugs then log_diario('(v.'+getVersionInfo(ParamStr(0))+') DEBUG - '+p_msg);  
178 -End;  
179 -  
180 -function GetRootKey(strRootKey: String): HKEY;  
181 -begin  
182 - /// Encontrar uma maneira mais elegante de fazer esses testes.  
183 - if Trim(strRootKey) = 'HKEY_LOCAL_MACHINE' Then Result := HKEY_LOCAL_MACHINE  
184 - else if Trim(strRootKey) = 'HKEY_CLASSES_ROOT' Then Result := HKEY_CLASSES_ROOT  
185 - else if Trim(strRootKey) = 'HKEY_CURRENT_USER' Then Result := HKEY_CURRENT_USER  
186 - else if Trim(strRootKey) = 'HKEY_USERS' Then Result := HKEY_USERS  
187 - else if Trim(strRootKey) = 'HKEY_CURRENT_CONFIG' Then Result := HKEY_CURRENT_CONFIG  
188 - else if Trim(strRootKey) = 'HKEY_DYN_DATA' Then Result := HKEY_DYN_DATA;  
189 -end;  
190 -  
191 -Function RemoveCaracteresEspeciais(Texto : String) : String;  
192 -var I : Integer;  
193 - strAux : String;  
194 -Begin  
195 - For I := 0 To Length(Texto) Do  
196 - if ord(Texto[I]) in [32..126] Then  
197 - strAux := strAux + Texto[I]  
198 - else strAux := strAux + ' '; // Coloca um espaço onde houver caracteres especiais  
199 - Result := strAux;  
200 -end;  
201 -  
202 -function GetValorChaveRegEdit(Chave: String): Variant;  
203 -var RegEditGet: TRegistry;  
204 - RegDataType: TRegDataType;  
205 - strRootKey, strKey, strValue, s: String;  
206 - ListaAuxGet : TStrings;  
207 - DataSize, Len, I : Integer;  
208 -begin  
209 - try  
210 - Result := '';  
211 - ListaAuxGet := g_oCacic.explode(Chave, '\');  
212 -  
213 - strRootKey := ListaAuxGet[0];  
214 - For I := 1 To ListaAuxGet.Count - 2 Do strKey := strKey + ListaAuxGet[I] + '\';  
215 - strValue := ListaAuxGet[ListaAuxGet.Count - 1];  
216 - if (strValue = '(Padrão)') then strValue := ''; //Para os casos de se querer buscar o valor default (Padrão)  
217 - RegEditGet := TRegistry.Create;  
218 -  
219 - RegEditGet.Access := KEY_READ;  
220 - RegEditGet.Rootkey := GetRootKey(strRootKey);  
221 - if RegEditGet.OpenKeyReadOnly(strKey) then //teste  
222 - Begin  
223 - RegDataType := RegEditGet.GetDataType(strValue);  
224 - if (RegDataType = rdString) or (RegDataType = rdExpandString) then Result := RegEditGet.ReadString(strValue)  
225 - else if RegDataType = rdInteger then Result := RegEditGet.ReadInteger(strValue)  
226 - else if (RegDataType = rdBinary) or (RegDataType = rdUnknown)  
227 - then  
228 - begin  
229 - DataSize := RegEditGet.GetDataSize(strValue);  
230 - if DataSize = -1 then exit;  
231 - SetLength(s, DataSize);  
232 - Len := RegEditGet.ReadBinaryData(strValue, PChar(s)^, DataSize);  
233 - if Len <> DataSize then exit;  
234 - Result := RemoveCaracteresEspeciais(s);  
235 - end  
236 - end;  
237 - finally  
238 - RegEditGet.CloseKey;  
239 - RegEditGet.Free;  
240 - ListaAuxGet.Free;  
241 -  
242 - end;  
243 -end;  
244 -  
245 -function ProgramaRodando(NomePrograma: String): Boolean;  
246 -var  
247 - IsRunning, ContinueTest: Boolean;  
248 - FSnapshotHandle: THandle;  
249 - FProcessEntry32: TProcessEntry32;  
250 -begin  
251 - IsRunning := False;  
252 - FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);  
253 - FProcessEntry32.dwSize := Sizeof(FProcessEntry32);  
254 - ContinueTest := Process32First(FSnapshotHandle, FProcessEntry32);  
255 - while ContinueTest do  
256 - begin  
257 - IsRunning := UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(NomePrograma);  
258 - if IsRunning then ContinueTest := False  
259 - else ContinueTest := Process32Next(FSnapshotHandle, FProcessEntry32);  
260 - end;  
261 - CloseHandle(FSnapshotHandle);  
262 - Result := IsRunning;  
263 -end;  
264 -  
265 -Function GetValorDatMemoria(p_Chave : String; p_tstrCipherOpened : TStrings) : String;  
266 -begin  
267 - if (p_tstrCipherOpened.IndexOf(p_Chave)<>-1) then  
268 - Result := p_tstrCipherOpened[p_tstrCipherOpened.IndexOf(p_Chave)+1]  
269 - else  
270 - Result := '';  
271 -end;  
272 -  
273 -function GetFolderDate(Folder: string): TDateTime;  
274 -var  
275 - Rec: TSearchRec;  
276 - Found: Integer;  
277 - Date: TDateTime;  
278 -begin  
279 - if Folder[Length(folder)] = '\' then  
280 - Delete(Folder, Length(folder), 1);  
281 - Result := 0;  
282 - Found := FindFirst(Folder, faDirectory, Rec);  
283 - try  
284 - if Found = 0 then  
285 - begin  
286 - Date := FileDateToDateTime(Rec.Time);  
287 - Result := Date;  
288 - end;  
289 - finally  
290 - FindClose(Rec);  
291 - end;  
292 -end;  
293 -  
294 -procedure Executa_Col_Anvi;  
295 -var Lista1_RCO : TStringList;  
296 - Lista2_RCO : TStrings;  
297 - nu_versao_engine, dt_hr_instalacao, nu_versao_pattern, ChaveRegistro, te_servidor, in_ativo,  
298 - NomeExecutavel, UVC, ValorChaveRegistro, strAux, strDirTrend : String;  
299 - searchResult : TSearchRec; // Necessário apenas para Win9x  
300 -begin  
301 - Try  
302 - SetValorDatMemoria('Col_Anvi.Inicio', FormatDateTime('hh:nn:ss', Now), v_tstrCipherOpened1);  
303 - nu_versao_engine := '';  
304 - nu_versao_pattern := '';  
305 - log_diario('Coletando informações de Antivírus OfficeScan.');  
306 - If g_oCacic.isWindows9xME() Then { Windows 9x/ME }  
307 - Begin  
308 - ChaveRegistro := 'HKEY_LOCAL_MACHINE\Software\TrendMicro\OfficeScanCorp\CurrentVersion';  
309 - NomeExecutavel := 'pccwin97.exe';  
310 - dt_hr_instalacao := GetValorChaveRegEdit(ChaveRegistro + '\Install Date') + GetValorChaveRegEdit(ChaveRegistro + '\Install Time');  
311 - log_DEBUG('Data/Hora de Instalação: '+dt_hr_instalacao);  
312 - strDirTrend := GetValorChaveRegEdit(ChaveRegistro + '\Application Path');  
313 - If FileExists(strDirTrend + '\filter32.vxd') Then  
314 - Begin  
315 - // Em máquinas Windows 9X a versão do engine e do pattern não são gravadas no registro. Tenho que pegar direto dos arquivos.  
316 - Lista2_RCO := g_oCacic.explode(getVersionInfo(strDirTrend + 'filter32.vxd'), '.'); // Pego só os dois primeiros dígitos. Por exemplo: 6.640.0.1001 vira 6.640.  
317 - nu_versao_engine := Lista2_RCO[0] + '.' + Lista2_RCO[1];  
318 - Lista2_RCO.Free;  
319 - end  
320 - Else nu_versao_engine := '0';  
321 -  
322 - // A gambiarra para coletar a versão do pattern é obter a maior extensão do arquivo lpt$vpn  
323 - if FindFirst(strDirTrend + '\lpt$vpn.*', faAnyFile, searchResult) = 0 then  
324 - begin  
325 - Lista1_RCO := TStringList.Create;  
326 - repeat Lista1_RCO.Add(ExtractFileExt(searchResult.Name));  
327 - until FindNext(searchResult) <> 0;  
328 - Sysutils.FindClose(searchResult);  
329 - Lista1_RCO.Sort; // Ordeno, para, em seguida, obter o último.  
330 - strAux := Lista1_RCO[Lista1_RCO.Count - 1];  
331 - Lista1_RCO.Free;  
332 - nu_versao_pattern := Copy(strAux, 2, Length(strAux)); // Removo o '.' da extensão.  
333 - end;  
334 -  
335 - end  
336 - Else  
337 - Begin // NT a XP  
338 - ChaveRegistro := 'HKEY_LOCAL_MACHINE\Software\TrendMicro\PC-cillinNTCorp\CurrentVersion';  
339 - NomeExecutavel := 'ntrtscan.exe';  
340 - dt_hr_instalacao := GetValorChaveRegEdit(ChaveRegistro + '\InstDate') + GetValorChaveRegEdit(ChaveRegistro + '\InstTime');  
341 - nu_versao_engine := GetValorChaveRegEdit(ChaveRegistro + '\Misc.\EngineZipVer');  
342 - nu_versao_pattern := GetValorChaveRegEdit(ChaveRegistro + '\Misc.\PatternVer');  
343 - nu_versao_pattern := Copy(nu_versao_pattern, 2, Length(nu_versao_pattern)-3);  
344 - end;  
345 -  
346 - log_DEBUG('Versão de Engine obtida.: '+nu_versao_engine);  
347 - log_DEBUG('Versão de Pattern obtida: '+nu_versao_pattern);  
348 -  
349 - te_servidor := GetValorChaveRegEdit(ChaveRegistro + '\Server');  
350 - If (ProgramaRodando(NomeExecutavel)) Then in_ativo := '1' Else in_ativo := '0';  
351 -  
352 - log_DEBUG('Valor para Estado Ativo.: ' + in_ativo);  
353 -  
354 - // Monto a string que será comparada com o valor armazenado no registro.  
355 - UVC := Trim(nu_versao_engine + ';' +  
356 - nu_versao_pattern + ';' +  
357 - te_servidor + ';' +  
358 - dt_hr_instalacao + ';' +  
359 - in_ativo);  
360 - // Obtenho do registro o valor que foi previamente armazenado  
361 - ValorChaveRegistro := Trim(GetValorDatMemoria('Coletas.OfficeScan',v_tstrCipherOpened));  
362 -  
363 - SetValorDatMemoria('Col_Anvi.Fim' , FormatDateTime('hh:nn:ss', Now), v_tstrCipherOpened1);  
364 -  
365 - log_DEBUG('Registro Anterior: ' + ValorChaveRegistro);  
366 - log_DEBUG('Registro Atual...: ' + UVC);  
367 - // Se essas informações forem diferentes significa que houve alguma alteração  
368 - // na configuração. Nesse caso, gravo as informações no BD Central  
369 - // e, se não houver problemas durante esse procedimento, atualizo as  
370 - // informações no registro.  
371 - If (GetValorDatMemoria('Configs.IN_COLETA_FORCADA_ANVI',v_tstrCipherOpened)='S') or (UVC <> ValorChaveRegistro) Then  
372 - Begin  
373 - SetValorDatMemoria('Col_Anvi.nu_versao_engine' , nu_versao_engine , v_tstrCipherOpened1);  
374 - SetValorDatMemoria('Col_Anvi.nu_versao_pattern' , nu_versao_pattern, v_tstrCipherOpened1);  
375 - SetValorDatMemoria('Col_Anvi.dt_hr_instalacao' , dt_hr_instalacao , v_tstrCipherOpened1);  
376 - SetValorDatMemoria('Col_Anvi.te_servidor' , te_servidor , v_tstrCipherOpened1);  
377 - SetValorDatMemoria('Col_Anvi.in_ativo' , in_ativo , v_tstrCipherOpened1);  
378 - SetValorDatMemoria('Col_Anvi.UVC' , UVC , v_tstrCipherOpened1);  
379 - CipherClose(g_oCacic.getCacicPath + '\temp\col_anvi.dat' , v_tstrCipherOpened1);  
380 - end  
381 - else  
382 - Begin  
383 - SetValorDatMemoria('Col_Anvi.nada', 'nada', v_tstrCipherOpened1);  
384 - CipherClose(g_oCacic.getCacicPath + '\temp\col_anvi.dat', v_tstrCipherOpened1);  
385 - End;  
386 - Except  
387 - Begin  
388 - SetValorDatMemoria('Col_Anvi.nada', 'nada', v_tstrCipherOpened1);  
389 - SetValorDatMemoria('Col_Anvi.Fim', '99999999', v_tstrCipherOpened1);  
390 - CipherClose(g_oCacic.getCacicPath + '\temp\col_anvi.dat', v_tstrCipherOpened1);  
391 - End;  
392 - End;  
393 -end;  
394 -  
395 -var tstrTripa1 : TStrings;  
396 - intAux : integer;  
397 - strAux : String;  
398 -const  
399 - CACIC_APP_NAME = 'col_anvi';  
400 -  
401 -begin  
402 - g_oCacic := TCACIC.Create();  
403 -  
404 - g_oCacic.setBoolCipher(true);  
405 -  
406 - if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then  
407 - if (ParamCount>0) then  
408 - Begin  
409 - strAux := '';  
410 - For intAux := 1 to ParamCount do  
411 - Begin  
412 - if LowerCase(Copy(ParamStr(intAux),1,11)) = '/cacicpath=' then  
413 - begin  
414 - strAux := Trim(Copy(ParamStr(intAux),12,Length((ParamStr(intAux)))));  
415 - log_DEBUG('Parâmetro /CacicPath recebido com valor="'+strAux+'"');  
416 - end;  
417 - end;  
418 -  
419 - if (strAux <> '') then  
420 - Begin  
421 - g_oCacic.setCacicPath(strAux);  
422 -  
423 - v_Debugs := false;  
424 - if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then  
425 - Begin  
426 - if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then  
427 - Begin  
428 - v_Debugs := true;  
429 - log_diario('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');  
430 - End;  
431 - End;  
432 -  
433 - v_tstrCipherOpened := TStrings.Create;  
434 - v_tstrCipherOpened := CipherOpen(g_oCacic.getCacicPath + g_oCacic.getDatFileName);  
435 -  
436 - v_tstrCipherOpened1 := TStrings.Create;  
437 - v_tstrCipherOpened1 := CipherOpen(g_oCacic.getCacicPath + 'temp\col_anvi.dat');  
438 -  
439 - Try  
440 - Executa_Col_Anvi;  
441 - Except  
442 - Begin  
443 - SetValorDatMemoria('Col_Anvi.nada', 'nada', v_tstrCipherOpened1);  
444 - CipherClose(g_oCacic.getCacicPath + 'temp\col_anvi.dat', v_tstrCipherOpened1);  
445 - End;  
446 - End;  
447 - End;  
448 - End;  
449 - g_oCacic.Free();  
450 -end.  
col_anvi/col_anvi.res
No preview for this file type
col_anvi/col_anvi_icon.ico
No preview for this file type