Commit e32a719b4d802681401bc49b24f1097ff173acc9

Authored by anderson.peterle@previdencia.gov.br
1 parent eb8d42dd
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@961 fecfc0c7-e812-0410-ae72-849f08638ee7
col_hard/col_hard.cfg
@@ -1,35 +0,0 @@ @@ -1,35 +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"  
col_hard/col_hard.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=1  
80 -UnsafeCode=1  
81 -UnsafeCast=1  
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;dclOfficeXP  
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=  
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 Hardware do Sistema CACIC  
129 -FileVersion=2.5.0.773  
130 -InternalName=  
131 -LegalCopyright=  
132 -LegalTrademarks=  
133 -OriginalFilename=  
134 -ProductName=Col_Hard  
135 -ProductVersion=2.6  
136 -Comments=Baseado na licença GPL (General Public License)  
col_hard/col_hard.dpr
@@ -1,1028 +0,0 @@ @@ -1,1028 +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 -NOTA: O componente MiTeC System Information Component (MSIC) é baseado na classe TComponent e contém alguns subcomponentes baseados na classe TPersistent  
17 - Este componente é apenas freeware e não open-source, e foi baixado de http://www.mitec.cz/Downloads/MSIC.zip  
18 ----------------------------------------------------------------------------------------------------------------------------------------------------------------  
19 -*)  
20 -  
21 -program col_hard;  
22 -{$R *.res}  
23 -{$APPTYPE CONSOLE}  
24 -  
25 -uses  
26 - Windows,  
27 - Registry,  
28 - SysUtils,  
29 - Classes,  
30 - IniFiles,  
31 - MSI_SMBIOS,  
32 - MSI_Devices,  
33 - MSI_CPU,  
34 - MSI_DISPLAY,  
35 - MSI_MEDIA,  
36 - MSI_NETWORK,  
37 - MSI_XML_Reports,  
38 - PJVersionInfo,  
39 - CACIC_Library in '..\CACIC_Library.pas';  
40 -  
41 -var  
42 - v_mensagem,  
43 - v_strCipherClosed : String;  
44 - v_debugs : boolean;  
45 - v_tstrCipherOpened,  
46 - v_tstrCipherOpened1,  
47 - tstrTripa1 : TStrings;  
48 - intAux : integer;  
49 - g_oCacic : TCACIC;  
50 -  
51 -  
52 -// Dica baixada de http://www.marcosdellantonio.net/2007/06/14/operador-if-ternario-em-delphi-e-c/  
53 -// Fiz isso para não ter que acrescentar o componente Math ao USES!  
54 -function iif(condicao : boolean; resTrue, resFalse : Variant) : Variant;  
55 - Begin  
56 - if condicao then  
57 - Result := resTrue  
58 - else  
59 - Result := resFalse;  
60 - End;  
61 -  
62 -procedure log_diario(strMsg : String);  
63 -var  
64 - HistoricoLog : TextFile;  
65 - strDataArqLocal, strDataAtual : string;  
66 -begin  
67 - try  
68 - FileSetAttr (g_oCacic.getCacicPath + 'cacic2.log',0); // Retira os atributos do arquivo para evitar o erro FILE ACCESS DENIED em máquinas 2000  
69 - AssignFile(HistoricoLog,g_oCacic.getCacicPath + 'cacic2.log'); {Associa o arquivo a uma variável do tipo TextFile}  
70 - {$IOChecks off}  
71 - Reset(HistoricoLog); {Abre o arquivo texto}  
72 - {$IOChecks on}  
73 - if (IOResult <> 0) then // Arquivo não existe, será recriado.  
74 - begin  
75 - Rewrite (HistoricoLog);  
76 - Append(HistoricoLog);  
77 - Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now) + '======================> Iniciando o Log <=======================');  
78 - end;  
79 - DateTimeToString(strDataArqLocal, 'yyyymmdd', FileDateToDateTime(Fileage(g_oCacic.getCacicPath + 'cacic2.log')));  
80 - DateTimeToString(strDataAtual , 'yyyymmdd', Date);  
81 - if (strDataAtual <> strDataArqLocal) then // Se o arquivo INI não é da data atual...  
82 - begin  
83 - Rewrite (HistoricoLog); //Cria/Recria o arquivo  
84 - Append(HistoricoLog);  
85 - Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now) + '======================> Iniciando o Log <=======================');  
86 - end;  
87 - Append(HistoricoLog);  
88 - Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now)+ '[Coletor HARD] '+strMsg); {Grava a string Texto no arquivo texto}  
89 - CloseFile(HistoricoLog); {Fecha o arquivo texto}  
90 -// FileSetAttr (ExtractFilePath(Application.Exename) + '\cacic2.log',6); // Muda o atributo para arquivo de SISTEMA e OCULTO  
91 -  
92 - except  
93 - log_diario('Erro na gravação do log!');  
94 - end;  
95 -end;  
96 -  
97 -  
98 -  
99 -Function CipherClose(p_DatFileName : string; p_tstrCipherOpened : TStrings) : String;  
100 -var v_strCipherOpenImploded : string;  
101 - v_DatFile : TextFile;  
102 -begin  
103 - try  
104 - FileSetAttr (p_DatFileName,0); // Retira os atributos do arquivo para evitar o erro FILE ACCESS DENIED em máquinas 2000  
105 - AssignFile(v_DatFile,p_DatFileName); {Associa o arquivo a uma variável do tipo TextFile}  
106 -  
107 - // Criação do arquivo .DAT  
108 - Rewrite (v_DatFile);  
109 - Append(v_DatFile);  
110 -  
111 - v_strCipherOpenImploded := g_oCacic.implode(p_tstrCipherOpened,g_oCacic.getSeparatorKey);  
112 - v_strCipherClosed := g_oCacic.enCrypt(v_strCipherOpenImploded);  
113 -  
114 - Writeln(v_DatFile,v_strCipherClosed); {Grava a string Texto no arquivo texto}  
115 -  
116 - CloseFile(v_DatFile);  
117 - except  
118 - end;  
119 -end;  
120 -  
121 -Function CipherOpen(p_DatFileName : string) : TStrings;  
122 -var v_DatFile : TextFile;  
123 - v_strCipherOpened,  
124 - v_strCipherClosed : string;  
125 -begin  
126 - v_strCipherOpened := '';  
127 - if FileExists(p_DatFileName) then  
128 - begin  
129 - AssignFile(v_DatFile,p_DatFileName);  
130 - {$IOChecks off}  
131 - Reset(v_DatFile);  
132 - {$IOChecks on}  
133 - if (IOResult <> 0) then // Arquivo não existe, será recriado.  
134 - begin  
135 - Rewrite (v_DatFile);  
136 - Append(v_DatFile);  
137 - end;  
138 -  
139 - Readln(v_DatFile,v_strCipherClosed);  
140 - while not EOF(v_DatFile) do Readln(v_DatFile,v_strCipherClosed);  
141 - CloseFile(v_DatFile);  
142 - v_strCipherOpened:= g_oCacic.deCrypt(v_strCipherClosed);  
143 - end;  
144 - if (trim(v_strCipherOpened)<>'') then  
145 - Result := g_oCacic.explode(v_strCipherOpened,g_oCacic.getSeparatorKey)  
146 - else  
147 - 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);  
148 -  
149 - if Result.Count mod 2 <> 0 then  
150 - Result.Add('');  
151 -end;  
152 -  
153 -Procedure SetValorDatMemoria(p_Chave : string; p_Valor : String; p_tstrCipherOpened : TStrings);  
154 -begin  
155 - // Exemplo: p_Chave => Configs.nu_ip_servidor : p_Valor => 10.71.0.120  
156 - if (p_tstrCipherOpened.IndexOf(p_Chave)<>-1) then  
157 - p_tstrCipherOpened[v_tstrCipherOpened.IndexOf(p_Chave)+1] := p_Valor  
158 - else  
159 - Begin  
160 - p_tstrCipherOpened.Add(p_Chave);  
161 - p_tstrCipherOpened.Add(p_Valor);  
162 - End;  
163 -end;  
164 -Function GetValorDatMemoria(p_Chave : String; p_tstrCipherOpened : TStrings) : String;  
165 -begin  
166 - if (p_tstrCipherOpened.IndexOf(p_Chave)<>-1) then  
167 - Result := p_tstrCipherOpened[p_tstrCipherOpened.IndexOf(p_Chave)+1]  
168 - else  
169 - Result := '';  
170 -end;  
171 -function VerFmt(const MS, LS: DWORD): string;  
172 - // Format the version number from the given DWORDs containing the info  
173 -begin  
174 - Result := Format('%d.%d.%d.%d',  
175 - [HiWord(MS), LoWord(MS), HiWord(LS), LoWord(LS)])  
176 -end;  
177 -  
178 -function GetVersionInfo(p_File: string):string;  
179 -var PJVersionInfo1: TPJVersionInfo;  
180 -begin  
181 - PJVersionInfo1 := TPJVersionInfo.Create(nil);  
182 - PJVersionInfo1.FileName := PChar(p_File);  
183 - Result := VerFmt(PJVersionInfo1.FixedFileInfo.dwFileVersionMS, PJVersionInfo1.FixedFileInfo.dwFileVersionLS);  
184 - PJVersionInfo1.Free;  
185 -end;  
186 -  
187 -procedure log_DEBUG(p_msg:string);  
188 -Begin  
189 - if v_Debugs then log_diario('(v.'+getVersionInfo(ParamStr(0))+') DEBUG - '+p_msg);  
190 -End;  
191 -  
192 -// Função criada devido a divergências entre os valores retornados pelos métodos dos componentes MSI e seus Reports.  
193 -function Parse(p_ClassName, p_SectionName, p_DataName:string; p_Report : TStringList) : String;  
194 -var intClasses, intSections, intDatas, v_achei_SectionName, v_array_SectionName_Count : integer;  
195 - v_ClassName, v_DataName, v_string_consulta : string;  
196 - v_array_SectionName : tstrings;  
197 -begin  
198 - Log_DEBUG('p_ClassName => "'+p_ClassName+'" p_SectionName => "'+p_SectionName+'" p_DataName => "'+p_DataName+'"');  
199 - Result := '';  
200 - if (p_SectionName <> '') then  
201 - Begin  
202 - v_array_SectionName := g_oCacic.explode(p_SectionName,'/');  
203 - v_array_SectionName_Count := v_array_SectionName.Count;  
204 - End  
205 - else v_array_SectionName_Count := 0;  
206 -  
207 - v_achei_SectionName := 0;  
208 - v_ClassName := 'classname="' + p_ClassName + '">';  
209 - v_DataName := '<data name="' + p_DataName + '"';  
210 - intClasses := 0;  
211 - try  
212 - While intClasses < p_Report.Count Do  
213 - Begin  
214 - if (pos(v_ClassName,p_Report[intClasses])>0) then  
215 - Begin  
216 - intSections := intClasses;  
217 - While intSections < p_Report.Count Do  
218 - Begin  
219 -  
220 - if (p_SectionName<>'') then  
221 - Begin  
222 - v_string_consulta := '<section name="' + v_array_SectionName[v_achei_SectionName]+'">';  
223 - if (pos(v_string_consulta,p_Report[intSections])>0) then v_achei_SectionName := v_achei_SectionName+1;  
224 - End;  
225 -  
226 - if (v_achei_SectionName = v_array_SectionName_Count) then  
227 - Begin  
228 -  
229 - intDatas := intSections;  
230 - While intDatas < p_Report.Count Do  
231 - Begin  
232 -  
233 - if (pos(v_DataName,p_Report[intDatas])>0) then  
234 - Begin  
235 - Result := Copy(p_Report[intDatas],pos('>',p_Report[intDatas])+1,length(p_Report[intDatas]));  
236 - Result := StringReplace(Result,'</data>','',[rfReplaceAll]);  
237 - intClasses := p_Report.Count;  
238 - intSections := p_Report.Count;  
239 - intDatas := p_Report.Count;  
240 - End;  
241 - intDatas := intDatas + 1;  
242 - End; //for intDatas...  
243 - End; // if pos(v_SectionName...  
244 - intSections := intSections + 1;  
245 - End; // for intSections...  
246 - End; // if pos(v_ClassName...  
247 - intClasses := intClasses + 1;  
248 - End; // for intClasses...  
249 - except  
250 - Begin  
251 - log_diario('ERRO! Problema na rotina parse');  
252 - End;  
253 - end;  
254 - end;  
255 -  
256 -function GetFolderDate(Folder: string): TDateTime;  
257 -var  
258 - Rec: TSearchRec;  
259 - Found: Integer;  
260 - Date: TDateTime;  
261 -begin  
262 - if Folder[Length(folder)] = '\' then  
263 - Delete(Folder, Length(folder), 1);  
264 - Result := 0;  
265 - Found := FindFirst(Folder, faDirectory, Rec);  
266 - try  
267 - if Found = 0 then  
268 - begin  
269 - Date := FileDateToDateTime(Rec.Time);  
270 - Result := Date;  
271 - end;  
272 - finally  
273 - FindClose(Rec);  
274 - end;  
275 -end;  
276 -  
277 -procedure Grava_Debugs(strMsg : String);  
278 -var  
279 - DebugsFile : TextFile;  
280 - strDataArqLocal, strDataAtual, v_file_debugs : string;  
281 -begin  
282 - try  
283 - v_file_debugs := g_oCacic.getCacicPath + 'Temp\Debugs\debug_'+StringReplace(ExtractFileName(StrUpper(PChar(ParamStr(0)))),'.EXE','',[rfReplaceAll])+'.txt';  
284 - FileSetAttr (v_file_debugs,0); // Retira os atributos do arquivo para evitar o erro FILE ACCESS DENIED em máquinas 2000  
285 - AssignFile(DebugsFile,v_file_debugs); {Associa o arquivo a uma variável do tipo TextFile}  
286 -  
287 - {$IOChecks off}  
288 - Reset(DebugsFile); {Abre o arquivo texto}  
289 - {$IOChecks on}  
290 -  
291 - if (IOResult <> 0) then // Arquivo não existe, será recriado.  
292 - begin  
293 - Rewrite(DebugsFile);  
294 - Append(DebugsFile);  
295 - Writeln(DebugsFile,FormatDateTime('dd/mm hh:nn:ss : ', Now) + '======================> Iniciando o Debug <=======================');  
296 - end;  
297 - DateTimeToString(strDataArqLocal, 'yyyymmdd', FileDateToDateTime(Fileage(v_file_debugs)));  
298 - DateTimeToString(strDataAtual , 'yyyymmdd', Date);  
299 -  
300 - if (strDataAtual <> strDataArqLocal) then // Se o arquivo não é da data atual...  
301 - begin  
302 - Rewrite(DebugsFile); //Cria/Recria o arquivo  
303 - Append(DebugsFile);  
304 - Writeln(DebugsFile,FormatDateTime('dd/mm hh:nn:ss : ', Now) + '======================> Iniciando o Debug <=======================');  
305 - end;  
306 -  
307 - Append(DebugsFile);  
308 - Writeln(DebugsFile,FormatDateTime('dd/mm hh:nn:ss : ', Now) + strMsg); {Grava a string Texto no arquivo texto}  
309 - CloseFile(DebugsFile); {Fecha o arquivo texto}  
310 - except  
311 - log_diario('Erro na gravação do Debug!');  
312 - end;  
313 -end;  
314 -  
315 -  
316 -  
317 -// Converte caracteres básicos da tabela Ansi para Ascii  
318 -// Solução temporária.  
319 -function AnsiToAscii( StrANSI: String ): String;  
320 -var i: Integer;  
321 - StrASCII, Carac : string;  
322 - Letras_ANSI : array[150..255] of String;  
323 -begin  
324 - Letras_ANSI[150] := ' ';  
325 - Letras_ANSI[169] := '©';  
326 - Letras_ANSI[174] := '®';  
327 - Letras_ANSI[181] := 'µ';  
328 - Letras_ANSI[192] := 'A';  
329 - Letras_ANSI[193] := 'A';  
330 - Letras_ANSI[194] := 'A';  
331 - Letras_ANSI[195] := 'A';  
332 - Letras_ANSI[196] := 'A';  
333 - Letras_ANSI[197] := 'A';  
334 - Letras_ANSI[198] := 'A';  
335 - Letras_ANSI[199] := 'C';  
336 - Letras_ANSI[200] := 'E';  
337 - Letras_ANSI[201] := 'E';  
338 - Letras_ANSI[202] := 'E';  
339 - Letras_ANSI[203] := 'E';  
340 - Letras_ANSI[204] := 'I';  
341 - Letras_ANSI[205] := 'I';  
342 - Letras_ANSI[206] := 'I';  
343 - Letras_ANSI[207] := 'I';  
344 - Letras_ANSI[208] := 'D';  
345 - Letras_ANSI[209] := 'N';  
346 - Letras_ANSI[210] := 'O';  
347 - Letras_ANSI[211] := 'O';  
348 - Letras_ANSI[212] := 'O';  
349 - Letras_ANSI[213] := 'O';  
350 - Letras_ANSI[214] := 'O';  
351 - Letras_ANSI[215] := 'x';  
352 - Letras_ANSI[216] := 'O';  
353 - Letras_ANSI[217] := 'U';  
354 - Letras_ANSI[218] := 'U';  
355 - Letras_ANSI[219] := 'U';  
356 - Letras_ANSI[220] := 'U';  
357 - Letras_ANSI[221] := 'Y';  
358 - Letras_ANSI[222] := 'd';  
359 - Letras_ANSI[223] := 'b';  
360 - Letras_ANSI[224] := 'a';  
361 - Letras_ANSI[225] := 'a';  
362 - Letras_ANSI[226] := 'a';  
363 - Letras_ANSI[227] := 'a';  
364 - Letras_ANSI[228] := 'a';  
365 - Letras_ANSI[229] := 'a';  
366 - Letras_ANSI[230] := 'a';  
367 - Letras_ANSI[231] := 'c';  
368 - Letras_ANSI[232] := 'e';  
369 - Letras_ANSI[233] := 'e';  
370 - Letras_ANSI[234] := 'e';  
371 - Letras_ANSI[235] := 'e';  
372 - Letras_ANSI[236] := 'i';  
373 - Letras_ANSI[237] := 'i';  
374 - Letras_ANSI[238] := 'i';  
375 - Letras_ANSI[239] := 'i';  
376 - Letras_ANSI[240] := 'o';  
377 - Letras_ANSI[241] := 'n';  
378 - Letras_ANSI[242] := 'o';  
379 - Letras_ANSI[243] := 'o';  
380 - Letras_ANSI[244] := 'o';  
381 - Letras_ANSI[245] := 'o';  
382 - Letras_ANSI[246] := 'o';  
383 - Letras_ANSI[247] := 'o';  
384 - Letras_ANSI[248] := 'o';  
385 - Letras_ANSI[249] := 'u';  
386 - Letras_ANSI[250] := 'u';  
387 - Letras_ANSI[251] := 'u';  
388 - Letras_ANSI[252] := 'u';  
389 - Letras_ANSI[253] := 'y';  
390 - Letras_ANSI[254] := 'b';  
391 - Letras_ANSI[255] := 'y';  
392 -  
393 - i := 1;  
394 - StrASCII := '';  
395 - while (i <= Length(StrANSI)) do  
396 - begin  
397 - if (Copy(StrANSI,i,2)='&#') then  
398 - Begin  
399 - Carac := Letras_ANSI[StrToInt(Copy(StrANSI,i+2,3))];  
400 - i := i+ 5;  
401 - End  
402 - else if (Copy(StrANSI,i,4)='&gt;') then  
403 - Begin  
404 - Carac := '?';  
405 - i := i+ 3;  
406 - End  
407 - else if (Copy(StrANSI,i,6)='&quot;') then  
408 - Begin  
409 - Carac := '-';  
410 - i := i+ 5;  
411 - End  
412 - else if (Copy(StrANSI,i,6)='&apos;') then  
413 - Begin  
414 - Carac := '';  
415 - i := i+ 5;  
416 - End  
417 - else if (Copy(StrANSI,i,5)='&amp;') then  
418 - Begin  
419 - Carac := '';  
420 - i := i+ 4;  
421 - End  
422 - else Carac := Copy(StrANSI,i,1);  
423 - StrASCII := StrASCII + Carac;  
424 - i := i+1;  
425 - End;  
426 - Result := StrASCII;  
427 -end;  
428 -// Baixada de http://www.geocities.com/SiliconValley/Bay/1058/fdelphi.html  
429 -Function Rat(OQue: String; Onde: String) : Integer;  
430 -// Procura uma string dentro de outra, da direita para esquerda  
431 -// Retorna a posição onde foi encontrada ou 0 caso não seja encontrada  
432 -var  
433 -Pos : Integer;  
434 -Tam1 : Integer;  
435 -Tam2 : Integer;  
436 -Achou : Boolean;  
437 -begin  
438 -Tam1 := Length(OQue);  
439 -Tam2 := Length(Onde);  
440 -Pos := Tam2-Tam1+1;  
441 -Achou := False;  
442 -while (Pos >= 1) and not Achou do  
443 - begin  
444 - if Copy(Onde, Pos, Tam1) = OQue then  
445 - begin  
446 - Achou := True  
447 - end  
448 - else  
449 - begin  
450 - Pos := Pos - 1;  
451 - end;  
452 - end;  
453 -Result := Pos;  
454 -end;  
455 -  
456 -Function TrataExcecoesMacAddress(p_mac:String; p_excecao:String): String;  
457 -var tstrEXCECOES : TStrings;  
458 -var intAux1, v_conta_EXCECOES : integer;  
459 -  
460 -Begin  
461 - Result := '';  
462 - v_conta_EXCECOES := 0;  
463 - if (p_excecao <> '') then  
464 - Begin  
465 - tstrEXCECOES := g_oCacic.explode(p_excecao,','); // Excecoes a serem tratadas  
466 - for intAux1 := 0 to tstrEXCECOES.Count-1 Do  
467 - Begin  
468 - if (rat(tstrEXCECOES[intAux1],p_mac) > 0) then  
469 - Begin  
470 - v_conta_EXCECOES := 1;  
471 - break;  
472 - End;  
473 - End;  
474 - End;  
475 - if (v_conta_EXCECOES = 0) then  
476 - Begin  
477 - Result := p_mac;  
478 - End;  
479 -End;  
480 -  
481 -procedure Executa_Col_Hard;  
482 -var v_te_cpu_fabricante,  
483 - v_te_cpu_desc,  
484 - v_te_cpu_serial,  
485 - v_te_cpu_frequencia,  
486 - v_te_placa_rede_desc,  
487 - v_te_placa_som_desc,  
488 - v_te_cdrom_desc,  
489 - v_te_teclado_desc,  
490 - v_te_modem_desc,  
491 - v_te_mouse_desc,  
492 - v_te_mem_ram_desc,  
493 - v_te_mem_ram_tipo,  
494 - v_qt_placa_video_mem,  
495 - v_te_placa_video_resolucao,  
496 - v_te_placa_video_desc,  
497 - v_qt_placa_video_cores,  
498 - v_te_bios_fabricante,  
499 - v_te_bios_data,  
500 - v_te_bios_desc,  
501 - v_te_placa_mae_fabricante,  
502 - v_te_placa_mae_desc,  
503 - UVC,  
504 - ValorChaveRegistro,  
505 - v_DataName,  
506 - v_SectionName,  
507 - v_Macs_Invalidos,  
508 - v_Mac_Address,  
509 - v_Tripa_CDROM,  
510 - v_Tripa_TCPIP,  
511 - v_Tripa_CPU,  
512 - strAux,  
513 - v_PhysicalAddress,  
514 - v_IPAddress,  
515 - v_IPMask,  
516 - v_Gateway_IPAddress,  
517 - v_DHCP_IPAddress,  
518 - v_PrimaryWINS_IPAddress,  
519 - v_SecondaryWINS_IPAddress : String;  
520 - i, j, count : Integer;  
521 - v_qt_mem_ram : WORD;  
522 - v_CPU : TMiTeC_CPU;  
523 - v_DISPLAY : TMiTeC_Display;  
524 - v_MEDIA : TMiTeC_Media;  
525 - v_DEVICES : TMiTeC_Devices;  
526 - v_TCP : TMiTeC_TCPIP;  
527 - v_SMBIOS : TMiTeC_SMBIOS;  
528 - v_MemoriaRAM : TMemoryStatus;  
529 - v_Report,  
530 - v_tstrCPU,  
531 - v_tstrCDROM,  
532 - v_tstrTCPIP : TStringList;  
533 -  
534 - v_cpu_freq : TStrings;  
535 - v_registry : TRegistry;  
536 -  
537 -begin  
538 -  
539 - v_Debugs := false;  
540 - if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then  
541 - Begin  
542 - if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then  
543 - Begin  
544 - v_Debugs := true;  
545 - //log_diario('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.');  
546 - End;  
547 - End;  
548 -  
549 - Try  
550 - SetValorDatMemoria('Col_Hard.Inicio', FormatDateTime('hh:nn:ss', Now), v_tstrCipherOpened1);  
551 - v_Report := TStringList.Create;  
552 - log_diario('Coletando informações de Hardware.');  
553 -  
554 - v_cpu_freq := TStringList.Create;  
555 - v_tstrCPU := TStringList.Create;  
556 - v_tstrCDROM := TStringList.Create;  
557 - v_tstrTCPIP := TStringList.Create;  
558 -  
559 - Try  
560 - Begin  
561 - Log_Debug('Instanciando SMBIOS para obter frequencia de CPU...');  
562 - v_SMBIOS := TMiTeC_SMBIOS.Create(nil);  
563 - v_SMBIOS.RefreshData;  
564 - v_te_cpu_frequencia := 'ND';  
565 - if(v_SMBIOS.Processor[0].Frequency > 0) then  
566 - v_te_cpu_frequencia := inttostr(v_SMBIOS.Processor[0].Frequency) + 'Mhz' // Frequancia de CPU via BIOS  
567 - else begin  
568 - v_registry := TRegistry.Create;  
569 - try  
570 - v_registry.RootKey := HKEY_LOCAL_MACHINE;  
571 - try  
572 - if(v_registry.Openkey('HARDWARE\DESCRIPTION\System\CentralProcessor\0\', False)) then begin  
573 - v_te_cpu_frequencia := inttostr(v_registry.ReadInteger('~MHz'))+'Mhz'; // Frequencia de CPU via Regitry  
574 - v_registry.CloseKey;  
575 - end;  
576 - except  
577 - log_diario('CPU - informação de frequência ['+v_te_cpu_frequencia+'] não disponível (by SMBIOS/Registry): ');  
578 - end;  
579 - finally  
580 - v_registry.Free;  
581 - end;  
582 - end;  
583 - v_SMBIOS.Free;  
584 -  
585 - Log_Debug('CPU - frequência estática (by SMBIOS/Registry): '+v_te_cpu_frequencia);  
586 -  
587 - Log_Debug('Instanciando v_CPU...');  
588 - v_CPU := TMiTeC_CPU.Create(nil);  
589 - Log_Debug('Atualização de dados de CPU...');  
590 - v_CPU.RefreshData;  
591 - Log_Debug('Dados de CPU atualizados - OK!');  
592 -  
593 - // Obtem dados de CPU  
594 - Try  
595 - for i:=0 to v_CPU.CPUCount-1 do begin  
596 - v_te_cpu_serial := v_CPU.SerialNumber;  
597 - v_te_cpu_desc := v_CPU.CPUName;  
598 - if(v_te_cpu_desc = '') then  
599 - v_te_cpu_desc := v_CPU.MarketingName;  
600 -  
601 - v_te_cpu_fabricante := cVendorNames[v_CPU.Vendor].Prefix;  
602 -  
603 - Log_Debug('CPU - frequência dinâmica (by CPU): '+inttostr(v_CPU.Frequency) + 'Mhz');  
604 -  
605 - // Se pegou ao menos a descrição, adiciona-se à tripa...  
606 - if (v_te_cpu_desc <> '') then  
607 - Begin  
608 - v_tstrCPU.Add('te_cpu_desc###' + v_te_cpu_desc + '#FIELD#' +  
609 - 'te_cpu_fabricante###' + v_te_cpu_fabricante + '#FIELD#' +  
610 - 'te_cpu_serial###' + v_te_cpu_serial + '#FIELD#' +  
611 - 'te_cpu_frequencia###' + v_te_cpu_frequencia);  
612 - Log_Debug('Adicionando a tstrCPU: "'+v_tstrCPU[v_tstrCPU.count-1]);  
613 - Log_DEBUG('Tamanho de v_tstrCPU 0: '+intToStr(v_tstrCPU.Count));  
614 - End;  
615 - end;  
616 - Except  
617 - log_diario('Problemas ao coletar dados de CPU!');  
618 - end;  
619 - v_CPU.Free;  
620 - Log_DEBUG('Tamanho de v_tstrCPU 1: '+intToStr(v_tstrCPU.Count));  
621 -  
622 - // Media informations  
623 - Try  
624 - v_MEDIA := TMiTeC_Media.Create(nil);  
625 - v_MEDIA.RefreshData;  
626 - if v_Media.SoundCardIndex>-1 then begin  
627 - //n:=Tree.Items.AddChild(r,Media.Devices[Media.SoundCardIndex]);  
628 - v_te_placa_som_desc := v_Media.Devices[v_Media.SoundCardIndex];  
629 - end;  
630 - except log_diario('Problemas ao coletar dados de Aúdio');  
631 - end;  
632 -  
633 - Log_Debug('Dados de aúdio coletados - OK!');  
634 -  
635 - // Devices informations  
636 - Try  
637 - Log_Debug('Instanciando v_DEVICES...');  
638 - v_DEVICES := TMiTeC_Devices.Create(nil);  
639 - Log_Debug('RefreshingData...');  
640 - v_DEVICES.RefreshData;  
641 - if v_Debugs then MSI_XML_Reports.Devices_XML_Report(v_DEVICES,TRUE,v_Report);  
642 - Log_Debug('v_DEVICES.DeviceCount = '+intToStr(v_DEVICES.DeviceCount));  
643 - i := 0;  
644 - While i < v_DEVICES.DeviceCount do  
645 - Begin  
646 - v_mensagem := 'Obtendo Descrição de CDROM';  
647 - Log_Debug('Percorrendo v_DEVICES.Devices['+intToStr(i)+']...');  
648 -  
649 - if v_DEVICES.Devices[i].DeviceClass=dcCDROM then  
650 - Begin  
651 - // Vamos tentar de tudo! :))))  
652 - v_te_cdrom_desc := Trim(v_DEVICES.Devices[i].Name);  
653 - if Trim(v_te_cdrom_desc)='' then  
654 - v_te_cdrom_desc := v_DEVICES.Devices[i].FriendlyName;  
655 - if Trim(v_te_cdrom_desc)='' then  
656 - v_te_cdrom_desc := v_DEVICES.Devices[i].Description;  
657 -  
658 - if (v_te_cdrom_desc <> '') then  
659 - Begin  
660 - v_tstrCDROM.Add('te_cdrom_desc###'+v_te_cdrom_desc);  
661 - Log_Debug('Adicionando a tstrCDROM: "'+v_tstrCDROM[v_tstrCDROM.count-1]+'"');  
662 - Log_Debug('CDROM Informations - OK!');  
663 - End;  
664 - End;  
665 -  
666 -  
667 - v_mensagem := 'Obtendo Descrição de Modem';  
668 - if v_DEVICES.Devices[i].DeviceClass=dcModem then  
669 - Begin  
670 - if Trim(v_DEVICES.Devices[i].FriendlyName)='' then  
671 - v_te_modem_desc := Trim(v_DEVICES.Devices[i].Description)  
672 - else  
673 - v_te_modem_desc := Trim(v_DEVICES.Devices[i].FriendlyName);  
674 -  
675 - Log_Debug('MODEM Informations - OK!');  
676 - End;  
677 -  
678 - v_mensagem := 'Obtendo Descrição de Mouse';  
679 - if v_DEVICES.Devices[i].DeviceClass=dcMouse then  
680 - Begin  
681 - if Trim(v_DEVICES.Devices[i].FriendlyName)='' then  
682 - v_te_mouse_desc := Trim(v_DEVICES.Devices[i].Description)  
683 - else  
684 - v_te_mouse_desc := Trim(v_DEVICES.Devices[i].FriendlyName);  
685 -  
686 - Log_Debug('MOUSE Informations - OK!');  
687 - End;  
688 -  
689 - v_mensagem := 'Obtendo Descrição de Teclado';  
690 - if v_DEVICES.Devices[i].DeviceClass=dcKeyboard then  
691 - Begin  
692 - if Trim(v_DEVICES.Devices[i].FriendlyName)='' then  
693 - v_te_teclado_desc := Trim(v_DEVICES.Devices[i].Description)  
694 - else  
695 - v_te_teclado_desc := Trim(v_DEVICES.Devices[i].FriendlyName);  
696 -  
697 - Log_Debug('KEYBOARD Informations - OK!');  
698 - End;  
699 -  
700 - v_mensagem := 'Obtendo Descrição de Vídeo';  
701 - if v_DEVICES.Devices[i].DeviceClass=dcDisplay then  
702 - Begin  
703 - if Trim(v_DEVICES.Devices[i].FriendlyName)='' then  
704 - v_te_placa_video_desc := Trim(v_DEVICES.Devices[i].Description)  
705 - else  
706 - v_te_placa_video_desc := Trim(v_DEVICES.Devices[i].FriendlyName);  
707 -  
708 - Log_Debug('DISPLAY Informations - OK!');  
709 - End;  
710 -  
711 - i := i+1;  
712 - End;  
713 - except log_diario('Problema em DEVICES Details!');  
714 - end;  
715 - v_DEVICES.Free;  
716 -  
717 -  
718 - // Memory informations  
719 - Try  
720 - Begin  
721 - v_MemoriaRAM.dwLength := SizeOf(v_MemoriaRAM);  
722 - GlobalMemoryStatus(v_MemoriaRAM);  
723 - v_qt_mem_ram := v_MemoriaRAM.dwTotalPhys div 1024000;  
724 - Log_Debug('MEMORY Informations - OK!');  
725 - End;  
726 - except log_diario('Problema em MEMORY Details!');  
727 - end;  
728 -  
729 - Try  
730 - Begin  
731 - v_SMBIOS := TMiTeC_SMBIOS.Create(nil);  
732 - v_SMBIOS.RefreshData;  
733 - with v_SMBIOS do begin  
734 - if v_SMBIOS.MemoryDeviceCount>0 then begin  
735 - for i:=0 to v_SMBIOS.MemoryDeviceCount-1 do  
736 - if (v_SMBIOS.MemoryDevice[i].Size>0) then begin  
737 - if v_SMBIOS.MemoryDevice[i].Device>smmdUnknown then  
738 - v_te_mem_ram_tipo:=MemoryDeviceTypes[v_SMBIOS.MemoryDevice[i].Device]  
739 - else  
740 - v_te_mem_ram_tipo:=MemoryFormFactors[v_SMBIOS.MemoryDevice[i].FormFactor];  
741 -  
742 - if (v_te_mem_ram_desc <> '') then  
743 - v_te_mem_ram_desc := v_te_mem_ram_desc + ' - ';  
744 -  
745 - v_te_mem_ram_desc := v_te_mem_ram_desc + 'Slot '+ inttostr(i) + ': '  
746 - + v_SMBIOS.MemoryDevice[i].Manufacturer + ' '  
747 - + inttostr(v_SMBIOS.MemoryDevice[i].Size) + 'MB '  
748 - + '(' + v_te_mem_ram_tipo +')';  
749 - end;  
750 - end  
751 - else if v_SMBIOS.MemoryModuleCount > -1 then  
752 - Begin  
753 - for i:=0 to v_SMBIOS.MemoryModuleCount-1 do begin  
754 - if (v_SMBIOS.MemoryModule[i].Size <> 0) then begin  
755 - v_te_mem_ram_tipo := v_SMBIOS.GetMemoryTypeStr(v_SMBIOS.MemoryModule[i].Types);  
756 - if (v_te_mem_ram_desc <> '') then  
757 - v_te_mem_ram_desc := v_te_mem_ram_desc + ' - ';  
758 - v_te_mem_ram_desc := v_te_mem_ram_desc + 'Slot '+ inttostr(i) + ': '  
759 - + v_SMBIOS.MemoryDevice[i].Manufacturer + ' '  
760 - + inttostr(v_SMBIOS.MemoryModule[i].Size) + 'MB '  
761 - + '(' + v_te_mem_ram_tipo +')';  
762 - end;  
763 - end;  
764 - end;  
765 - end;  
766 -  
767 - if (trim(v_te_placa_mae_fabricante)='') then begin  
768 - v_te_placa_mae_fabricante := v_SMBIOS.MainBoardManufacturer;  
769 - if (trim(v_te_placa_mae_fabricante)='') then  
770 - v_te_placa_mae_fabricante := v_SMBIOS.SystemManufacturer;  
771 - end;  
772 -  
773 - if (trim(v_te_placa_mae_desc)='') then begin  
774 - v_te_placa_mae_desc := v_SMBIOS.MainBoardModel;  
775 - if (trim(v_te_placa_mae_desc)='') then  
776 - v_te_placa_mae_desc := v_SMBIOS.SystemModel;  
777 - end;  
778 -  
779 -  
780 - v_te_bios_data := v_SMBIOS.BIOSDate;  
781 - v_te_bios_fabricante := v_SMBIOS.BIOSVendor;  
782 - v_te_bios_desc := v_SMBIOS.BIOSVersion;  
783 -  
784 - v_SMBIOS.Free;  
785 - Log_Debug('SMBIOS Informations - OK!');  
786 - End;  
787 - Except log_diario('Problema em SMBIOS Details!');  
788 - End;  
789 -  
790 - // Display informations  
791 - Try  
792 - Begin  
793 - v_DISPLAY := TMiTeC_Display.Create(nil);  
794 - v_DISPLAY.RefreshData;  
795 -  
796 - if (trim(v_te_placa_video_desc)='') then v_te_placa_video_desc := v_DISPLAY.Adapter;  
797 - v_qt_placa_video_cores := IntToStr(v_DISPLAY.ColorDepth);  
798 - v_qt_placa_video_mem := IntToStr(v_DISPLAY.Memory div 1048576 ) + 'MB';  
799 - v_te_placa_video_resolucao := IntToStr(v_DISPLAY.HorzRes) + 'x' + IntToStr(v_DISPLAY.VertRes);  
800 -  
801 - v_DISPLAY.Free;  
802 - Log_Debug('VIDEO Informations - OK!');  
803 - End;  
804 - Except log_diario('Problema em VIDEO Details!');  
805 - End;  
806 -  
807 - // Network informations  
808 - Try  
809 - Begin  
810 - v_TCP := TMiTeC_TCPIP.Create(nil);  
811 - v_TCP.RefreshData;  
812 -  
813 - v_mensagem := 'Ativando TCP Getinfo...';  
814 -  
815 - i := 0;  
816 - v_Macs_Invalidos := trim(GetValorDatMemoria('TCPIP.TE_ENDERECOS_MAC_INVALIDOS',v_tstrCipherOpened));  
817 -  
818 - // Avalia quantidade de placas de rede e obtem respectivos dados  
819 - if v_TCP.AdapterCount>0 then  
820 - for i:=0 to v_TCP.AdapterCount-1 do begin  
821 - v_te_placa_rede_desc := v_TCP.Adapter[i].Name;  
822 - v_PhysicalAddress := v_TCP.Adapter[i].Address;  
823 - v_IPAddress := v_TCP.Adapter[i].IPAddress[0];  
824 - v_IPMask := v_TCP.Adapter[i].IPAddressMask[0];  
825 - v_Gateway_IPAddress := v_TCP.Adapter[i].Gateway_IPAddress[0];  
826 - v_DHCP_IPAddress := v_TCP.Adapter[i].DHCP_IPAddress[0];  
827 - v_PrimaryWINS_IPAddress := v_TCP.Adapter[i].PrimaryWINS_IPAddress[0];  
828 - v_SecondaryWINS_IPAddress := v_TCP.Adapter[i].SecondaryWINS_IPAddress[0];  
829 -  
830 - if (trim( v_te_placa_rede_desc +  
831 - v_PhysicalAddress +  
832 - v_IPAddress +  
833 - v_IPMask +  
834 - v_Gateway_IPAddress +  
835 - v_DHCP_IPAddress +  
836 - v_PrimaryWINS_IPAddress +  
837 - v_SecondaryWINS_IPAddress)<>'') then  
838 - Begin  
839 - v_tstrTCPIP.Add('te_placa_rede_desc###' + v_te_placa_rede_desc +'#FIELD#'+  
840 - 'te_node_address###' + v_PhysicalAddress +'#FIELD#'+  
841 - 'te_ip###' + v_IPAddress +'#FIELD#'+  
842 - 'te_mascara###' + v_IPMask +'#FIELD#'+  
843 - 'te_gateway###' + v_Gateway_IPAddress +'#FIELD#'+  
844 - 'te_serv_dhcp###' + v_DHCP_IPAddress +'#FIELD#'+  
845 - 'te_wins_primario###' + v_PrimaryWINS_IPAddress +'#FIELD#'+  
846 - 'te_wins_secundario###' + v_SecondaryWINS_IPAddress);  
847 - Log_Debug('Adicionando a tstrTCPIP: "'+v_tstrTCPIP[v_tstrTCPIP.count-1]+'"');  
848 - End  
849 - End;  
850 - v_TCP.Free;  
851 - Log_Debug('TCPIP Informations - OK!');  
852 - End;  
853 - Except log_diario('Problema em TCP Details!');  
854 - End;  
855 -  
856 - // Caso exista a pasta ..temp/debugs, será criado o arquivo diário debug_<coletor>.txt  
857 - // Usar esse recurso apenas para debug de coletas mal-sucedidas através do componente MSI-Mitec.  
858 - if v_Debugs then  
859 - Begin  
860 - i := 0;  
861 - while i < v_Report.count-1 do  
862 - Begin  
863 - Grava_Debugs(v_report[i]);  
864 - i := i + 1;  
865 - End;  
866 - v_report.Free;  
867 - End;  
868 - End;  
869 - Except  
870 - End;  
871 -  
872 - // Crio as Tripas dos múltiplos ítens...  
873 - v_Tripa_CPU := '';  
874 - v_tstrCPU.Sort;  
875 - Log_DEBUG('Tamanho de v_tstrCPU 2: '+intToStr(v_tstrCPU.Count));  
876 - i := 0;  
877 - while (i < v_tstrCPU.Count) do  
878 - Begin  
879 - v_Tripa_CPU := v_Tripa_CPU + iif(v_Tripa_CPU = '','','#CPU#');  
880 - v_Tripa_CPU := v_Tripa_CPU + v_tstrCPU[i];  
881 - i := i + 1;  
882 - End;  
883 -  
884 - v_Tripa_CDROM := '';  
885 - v_tstrCDROM.Sort;  
886 - Log_DEBUG('Tamanho de v_tstrCDROM: '+intToStr(v_tstrCDROM.Count));  
887 - i := 0;  
888 - while (i < v_tstrCDROM.Count) do  
889 - Begin  
890 - v_Tripa_CDROM := v_Tripa_CDROM + iif(v_Tripa_CDROM = '','','#CDROM#');  
891 - v_Tripa_CDROM := v_Tripa_CDROM + v_tstrCDROM[i];  
892 - i := i + 1;  
893 - End;  
894 -  
895 - v_Tripa_TCPIP := '';  
896 - v_tstrTCPIP.Sort;  
897 - Log_DEBUG('Tamanho de v_tstrTCPIP: '+intToStr(v_tstrTCPIP.Count));  
898 - i := 0;  
899 - while (i < v_tstrTCPIP.Count) do  
900 - Begin  
901 - v_Tripa_TCPIP := v_Tripa_TCPIP + iif(v_Tripa_TCPIP = '','','#TCPIP#');  
902 - v_Tripa_TCPIP := v_Tripa_TCPIP + v_tstrTCPIP[i];  
903 - i := i + 1;  
904 - End;  
905 -  
906 - Try  
907 - // Monto a string que será comparada com o valor armazenado no registro.  
908 - v_mensagem := 'Montando pacote para comparações...';  
909 - UVC := g_oCacic.trimEspacosExcedentes(v_Tripa_TCPIP + ';' +  
910 - v_Tripa_CPU + ';' +  
911 - v_Tripa_CDROM + ';' +  
912 - v_te_mem_ram_desc + ';' +  
913 - IntToStr(v_qt_mem_ram) + ';' +  
914 - v_te_bios_desc + ';' +  
915 - v_te_bios_data + ';' +  
916 - v_te_bios_fabricante + ';' +  
917 - v_te_placa_mae_fabricante + ';' +  
918 - v_te_placa_mae_desc + ';' +  
919 - v_te_placa_video_desc + ';' +  
920 - v_te_placa_video_resolucao + ';' +  
921 - v_qt_placa_video_cores + ';' +  
922 - v_qt_placa_video_mem + ';' +  
923 - v_te_placa_som_desc + ';' +  
924 - v_te_teclado_desc + ';' +  
925 - v_te_modem_desc + ';' +  
926 - v_te_mouse_desc);  
927 - Except log_diario('Problema em comparação de envio!');  
928 - End;  
929 -  
930 - // Obtenho do registro o valor que foi previamente armazenado  
931 - ValorChaveRegistro := Trim(GetValorDatMemoria('Coletas.Hardware',v_tstrCipherOpened));  
932 -  
933 - SetValorDatMemoria('Col_Hard.Fim' , FormatDateTime('hh:nn:ss', Now), v_tstrCipherOpened1);  
934 -  
935 - // Se essas informações forem diferentes significa que houve alguma alteração  
936 - // na configuração de hardware. Nesse caso, gravo as informações no BD Central  
937 - // e, se não houver problemas durante esse procedimento, atualizo as  
938 - // informações no registro.  
939 - If (GetValorDatMemoria('Configs.IN_COLETA_FORCADA_HARD',v_tstrCipherOpened)='S') or  
940 - (g_oCacic.trimEspacosExcedentes(UVC) <> g_oCacic.trimEspacosExcedentes(ValorChaveRegistro)) Then  
941 - Begin  
942 - Try  
943 - //Envio via rede para ao Agente Gerente, para gravação no BD.  
944 - SetValorDatMemoria('Col_Hard.te_Tripa_TCPIP' , g_oCacic.trimEspacosExcedentes( v_Tripa_TCPIP ), v_tstrCipherOpened1);  
945 - SetValorDatMemoria('Col_Hard.te_Tripa_CPU' , g_oCacic.trimEspacosExcedentes( v_Tripa_CPU ), v_tstrCipherOpened1);  
946 - SetValorDatMemoria('Col_Hard.te_Tripa_CDROM' , g_oCacic.trimEspacosExcedentes( v_Tripa_CDROM ), v_tstrCipherOpened1);  
947 - SetValorDatMemoria('Col_Hard.te_placa_mae_fabricante' , g_oCacic.trimEspacosExcedentes( v_te_placa_mae_fabricante ) , v_tstrCipherOpened1);  
948 - SetValorDatMemoria('Col_Hard.te_placa_mae_desc' , g_oCacic.trimEspacosExcedentes( v_te_placa_mae_desc ) , v_tstrCipherOpened1);  
949 - SetValorDatMemoria('Col_Hard.qt_mem_ram' , g_oCacic.trimEspacosExcedentes( IntToStr(v_qt_mem_ram) ) , v_tstrCipherOpened1);  
950 - SetValorDatMemoria('Col_Hard.te_mem_ram_desc' , g_oCacic.trimEspacosExcedentes( v_te_mem_ram_desc ) , v_tstrCipherOpened1);  
951 - SetValorDatMemoria('Col_Hard.te_bios_desc' , g_oCacic.trimEspacosExcedentes( v_te_bios_desc ) , v_tstrCipherOpened1);  
952 - SetValorDatMemoria('Col_Hard.te_bios_data' , g_oCacic.trimEspacosExcedentes( v_te_bios_data ) , v_tstrCipherOpened1);  
953 - SetValorDatMemoria('Col_Hard.te_bios_fabricante' , g_oCacic.trimEspacosExcedentes( v_te_bios_fabricante ) , v_tstrCipherOpened1);  
954 - SetValorDatMemoria('Col_Hard.qt_placa_video_cores' , g_oCacic.trimEspacosExcedentes( v_qt_placa_video_cores ) , v_tstrCipherOpened1);  
955 - SetValorDatMemoria('Col_Hard.te_placa_video_desc' , g_oCacic.trimEspacosExcedentes( v_te_placa_video_desc ) , v_tstrCipherOpened1);  
956 - SetValorDatMemoria('Col_Hard.qt_placa_video_mem' , g_oCacic.trimEspacosExcedentes( v_qt_placa_video_mem ) , v_tstrCipherOpened1);  
957 - SetValorDatMemoria('Col_Hard.te_placa_video_resolucao', g_oCacic.trimEspacosExcedentes( v_te_placa_video_resolucao ) , v_tstrCipherOpened1);  
958 - SetValorDatMemoria('Col_Hard.te_placa_som_desc' , g_oCacic.trimEspacosExcedentes( v_te_placa_som_desc ) , v_tstrCipherOpened1);  
959 - SetValorDatMemoria('Col_Hard.te_teclado_desc' , g_oCacic.trimEspacosExcedentes( v_te_teclado_desc ) , v_tstrCipherOpened1);  
960 - SetValorDatMemoria('Col_Hard.te_mouse_desc' , g_oCacic.trimEspacosExcedentes( v_te_mouse_desc ) , v_tstrCipherOpened1);  
961 - SetValorDatMemoria('Col_Hard.te_modem_desc' , g_oCacic.trimEspacosExcedentes( v_te_modem_desc ) , v_tstrCipherOpened1);  
962 - SetValorDatMemoria('Col_Hard.UVC' , g_oCacic.trimEspacosExcedentes( UVC ) , v_tstrCipherOpened1);  
963 - CipherClose(g_oCacic.getCacicPath + 'temp\col_hard.dat', v_tstrCipherOpened1);  
964 - Except log_diario('Problema em gravação de dados no DAT!');  
965 - End;  
966 - end  
967 - else  
968 - Begin  
969 - SetValorDatMemoria('Col_Hard.nada','nada', v_tstrCipherOpened1);  
970 - SetValorDatMemoria('Col_Hard.Fim' , FormatDateTime('hh:nn:ss', Now), v_tstrCipherOpened1);  
971 - CipherClose(g_oCacic.getCacicPath + 'temp\col_hard.dat', v_tstrCipherOpened1);  
972 - End;  
973 - Except  
974 - Begin  
975 - SetValorDatMemoria('Col_Hard.nada','nada', v_tstrCipherOpened1);  
976 - SetValorDatMemoria('Col_Hard.Fim' , '99999999', v_tstrCipherOpened1);  
977 - CipherClose(g_oCacic.getCacicPath + 'temp\col_hard.dat', v_tstrCipherOpened1);  
978 - log_diario('Problema na execução => ' + v_mensagem);  
979 - End;  
980 - End;  
981 - g_oCacic.Free();  
982 -end;  
983 -  
984 -// ATENÇÃO: Caso haja falha na execução deste agente pela estação de trabalho,  
985 -// a provável causa será a falta da Runtime Library RTL70.BPL, que  
986 -// costuma ser "confundida" com vírus e apagada por alguns anti-vírus  
987 -// como o Avasti.  
988 -// SOLUÇÃO: Baixar a partir do endereço http://nwvault.ign.com/View.php?view=Other.Detail&id=119 o pacote  
989 -// D70_Installer.zip, descompactar e executar na estação de trabalho.  
990 -var strAux : String;  
991 -const CACIC_APP_NAME = 'col_hard';  
992 -begin  
993 - g_oCacic := TCACIC.Create();  
994 - g_oCacic.setBoolCipher(true);  
995 -  
996 - if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then  
997 - if (ParamCount>0) then  
998 - Begin  
999 - strAux := '';  
1000 - For intAux := 1 to ParamCount do  
1001 - Begin  
1002 - if LowerCase(Copy(ParamStr(intAux),1,11)) = '/cacicpath=' then  
1003 - begin  
1004 - strAux := Trim(Copy(ParamStr(intAux),12,Length((ParamStr(intAux)))));  
1005 - //log_DEBUG('Parâmetro /CacicPath recebido com valor="'+strAux+'"');  
1006 - end;  
1007 - end;  
1008 -  
1009 - if (strAux <> '') then  
1010 - Begin  
1011 - g_oCacic.setCacicPath(strAux);  
1012 -  
1013 - v_tstrCipherOpened := TStrings.Create;  
1014 - v_tstrCipherOpened := CipherOpen(g_oCacic.getCacicPath + g_oCacic.getDatFileName);  
1015 -  
1016 - v_tstrCipherOpened1 := TStrings.Create;  
1017 - v_tstrCipherOpened1 := CipherOpen(g_oCacic.getCacicPath + 'temp\col_hard.dat');  
1018 -  
1019 - Try  
1020 - Executa_Col_Hard;  
1021 - Except  
1022 - SetValorDatMemoria('Col_Hard.nada', 'nada', v_tstrCipherOpened1);  
1023 - CipherClose(g_oCacic.getCacicPath + 'temp\col_hard.dat', v_tstrCipherOpened1);  
1024 - End;  
1025 - Halt(0);  
1026 - End;  
1027 - End;  
1028 -end.  
col_hard/col_hard.res
No preview for this file type
col_hard/col_hard_icon.ico
No preview for this file type