Commit 683da8ded99c65272b9c757641f791416b508ae0
1 parent
bca7e201
Exists in
master
- merge de branch (2.4) revisão [709:726]
git-svn-id: http://svn.softwarepublico.gov.br/svn/cacic/cacic/trunk/agente-windows@729 fecfc0c7-e812-0410-ae72-849f08638ee7
Showing
18 changed files
with
206 additions
and
2345 deletions
Show diff stats
CACIC_Library.pas
| @@ -23,6 +23,7 @@ | @@ -23,6 +23,7 @@ | ||
| 23 | - start with "g" character for global | 23 | - start with "g" character for global |
| 24 | - start with "v" character for local | 24 | - start with "v" character for local |
| 25 | - start with "p" character for methods parameters | 25 | - start with "p" character for methods parameters |
| 26 | + - start with "P" character for pointers | ||
| 26 | - use underscore for better read | 27 | - use underscore for better read |
| 27 | e.g. | 28 | e.g. |
| 28 | var g_global : string; | 29 | var g_global : string; |
| @@ -49,6 +50,25 @@ uses | @@ -49,6 +50,25 @@ uses | ||
| 49 | Windows, SysUtils, StrUtils; | 50 | Windows, SysUtils, StrUtils; |
| 50 | 51 | ||
| 51 | type | 52 | type |
| 53 | + | ||
| 54 | +{ ------------------------------------------------------------------------------ | ||
| 55 | + Tipo de dados para obter informacoes extendidas dos Sistema Operacional | ||
| 56 | + ver MSDN: http://msdn.microsoft.com/en-us/library/ms724833(VS.85).aspx | ||
| 57 | +-------------------------------------------------------------------------------} | ||
| 58 | + TOSVersionInfoEx = packed record | ||
| 59 | + dwOSVersionInfoSize: DWORD; | ||
| 60 | + dwMajorVersion: DWORD; | ||
| 61 | + dwMinorVersion: DWORD; | ||
| 62 | + dwBuildNumber: DWORD; | ||
| 63 | + dwPlatformId: DWORD; | ||
| 64 | + szCSDVersion: array[0..127] of AnsiChar; | ||
| 65 | + wServicePackMajor: WORD; | ||
| 66 | + wServicePackMinor: WORD; | ||
| 67 | + wSuiteMask: WORD; | ||
| 68 | + wProductType: Byte; | ||
| 69 | + wReserved: Byte; | ||
| 70 | + end; | ||
| 71 | + | ||
| 52 | {*------------------------------------------------------------------------------ | 72 | {*------------------------------------------------------------------------------ |
| 53 | Classe para obter informações do sistema windows | 73 | Classe para obter informações do sistema windows |
| 54 | -------------------------------------------------------------------------------} | 74 | -------------------------------------------------------------------------------} |
| @@ -57,7 +77,11 @@ type | @@ -57,7 +77,11 @@ type | ||
| 57 | 77 | ||
| 58 | protected | 78 | protected |
| 59 | /// Mantem a identificação do sistema operacional | 79 | /// Mantem a identificação do sistema operacional |
| 60 | - g_osVerInfo: TOSVersionInfo; | 80 | + g_osVersionInfo: TOSVersionInfo; |
| 81 | + /// Mantem a identificação extendida do sistema operacional | ||
| 82 | + g_osVersionInfoEx: TOSVersionInfoEx; | ||
| 83 | + /// TRUE se houver informação extendida do SO, FALSE caso contrário | ||
| 84 | + g_osVersionInfoExtended: boolean; | ||
| 61 | 85 | ||
| 62 | public | 86 | public |
| 63 | function isWindowsVista() : boolean; | 87 | function isWindowsVista() : boolean; |
| @@ -94,6 +118,7 @@ type | @@ -94,6 +118,7 @@ type | ||
| 94 | -------------------------------------------------------------------------------} | 118 | -------------------------------------------------------------------------------} |
| 95 | TCACIC = class(TCACIC_Windows) | 119 | TCACIC = class(TCACIC_Windows) |
| 96 | constructor Create(); | 120 | constructor Create(); |
| 121 | + destructor Destroy; override; | ||
| 97 | private | 122 | private |
| 98 | 123 | ||
| 99 | protected | 124 | protected |
| @@ -112,6 +137,8 @@ type | @@ -112,6 +137,8 @@ type | ||
| 112 | // Declaração de constantes para a biblioteca | 137 | // Declaração de constantes para a biblioteca |
| 113 | const CACIC_PROCESS_WAIT = true; // aguardar fim do processo | 138 | const CACIC_PROCESS_WAIT = true; // aguardar fim do processo |
| 114 | const CACIC_PROCESS_NOWAIT = false; // não aguardar o fim do processo | 139 | const CACIC_PROCESS_NOWAIT = false; // não aguardar o fim do processo |
| 140 | +var | ||
| 141 | + P_OSVersionInfo: POSVersionInfo; | ||
| 115 | 142 | ||
| 116 | implementation | 143 | implementation |
| 117 | 144 | ||
| @@ -123,13 +150,33 @@ implementation | @@ -123,13 +150,33 @@ implementation | ||
| 123 | -------------------------------------------------------------------------------} | 150 | -------------------------------------------------------------------------------} |
| 124 | constructor TCACIC.Create(); | 151 | constructor TCACIC.Create(); |
| 125 | begin | 152 | begin |
| 126 | - Self.g_osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); | ||
| 127 | - GetVersionEx(Self.g_osVerInfo); | 153 | + FillChar(Self.g_osVersionInfoEx, SizeOf(Self.g_osVersionInfoEx), 0); |
| 154 | + {$TYPEDADDRESS OFF} | ||
| 155 | + P_OSVersionInfo := @Self.g_osVersionInfoEx; | ||
| 156 | + {$TYPEDADDRESS ON} | ||
| 157 | + | ||
| 158 | + Self.g_osVersionInfoEx.dwOSVersionInfoSize:= SizeOf(TOSVersionInfoEx); | ||
| 159 | + Self.g_osVersionInfoExtended := GetVersionEx(P_OSVersionInfo^); | ||
| 160 | + if (not Self.g_osVersionInfoExtended) then begin | ||
| 161 | + Self.g_osVersionInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); | ||
| 162 | + GetVersionEx(Self.g_osVersionInfo); | ||
| 163 | + end; | ||
| 128 | Self.Windows := TCACIC_Windows.Create(); | 164 | Self.Windows := TCACIC_Windows.Create(); |
| 129 | Self.Debug := TCACIC_Debug.Create(); | 165 | Self.Debug := TCACIC_Debug.Create(); |
| 130 | end; | 166 | end; |
| 131 | 167 | ||
| 132 | {*------------------------------------------------------------------------------ | 168 | {*------------------------------------------------------------------------------ |
| 169 | + Destrutor para a classe | ||
| 170 | + | ||
| 171 | + Objetiva finalizar valores usados pelos objetos da classe. | ||
| 172 | +-------------------------------------------------------------------------------} | ||
| 173 | +destructor TCACIC.Destroy(); | ||
| 174 | +begin | ||
| 175 | + FreeMemory(P_OSVersionInfo); | ||
| 176 | + inherited; | ||
| 177 | +end; | ||
| 178 | + | ||
| 179 | +{*------------------------------------------------------------------------------ | ||
| 133 | Elimina espacos excedentes na string | 180 | Elimina espacos excedentes na string |
| 134 | 181 | ||
| 135 | @param p_str String a excluir espacos | 182 | @param p_str String a excluir espacos |
| @@ -219,8 +266,13 @@ end; | @@ -219,8 +266,13 @@ end; | ||
| 219 | function TCACIC_Windows.isWindowsGEVista() : boolean; | 266 | function TCACIC_Windows.isWindowsGEVista() : boolean; |
| 220 | begin | 267 | begin |
| 221 | Result := false; | 268 | Result := false; |
| 222 | - if((g_osVerInfo.dwMajorVersion >= 6) and (g_osVerInfo.dwMinorVersion >= 0)) then | ||
| 223 | - Result := true; | 269 | + if(Self.g_osVersionInfoExtended) then begin |
| 270 | + if((g_osVersionInfoEx.dwMajorVersion >= 6) and (g_osVersionInfoEx.dwMinorVersion >= 0)) then | ||
| 271 | + Result := true; | ||
| 272 | + end | ||
| 273 | + else | ||
| 274 | + if((g_osVersionInfo.dwMajorVersion >= 6) and (g_osVersionInfo.dwMinorVersion >= 0)) then | ||
| 275 | + Result := true; | ||
| 224 | end; | 276 | end; |
| 225 | 277 | ||
| 226 | {*------------------------------------------------------------------------------ | 278 | {*------------------------------------------------------------------------------ |
| @@ -233,8 +285,13 @@ end; | @@ -233,8 +285,13 @@ end; | ||
| 233 | function TCACIC_Windows.isWindowsVista() : boolean; | 285 | function TCACIC_Windows.isWindowsVista() : boolean; |
| 234 | begin | 286 | begin |
| 235 | Result := false; | 287 | Result := false; |
| 236 | - if((g_osVerInfo.dwMajorVersion = 6) and (g_osVerInfo.dwMinorVersion = 0)) then | ||
| 237 | - Result := true; | 288 | + if(Self.g_osVersionInfoExtended) then begin |
| 289 | + if((g_osVersionInfoEx.dwMajorVersion = 6) and (g_osVersionInfoEx.dwMinorVersion = 0)) then | ||
| 290 | + Result := true; | ||
| 291 | + end | ||
| 292 | + else | ||
| 293 | + if((g_osVersionInfo.dwMajorVersion = 6) and (g_osVersionInfo.dwMinorVersion = 0)) then | ||
| 294 | + Result := true; | ||
| 238 | end; | 295 | end; |
| 239 | 296 | ||
| 240 | {*------------------------------------------------------------------------------ | 297 | {*------------------------------------------------------------------------------ |
| @@ -247,8 +304,13 @@ end; | @@ -247,8 +304,13 @@ end; | ||
| 247 | function TCACIC_Windows.isWindowsGEXP() : boolean; | 304 | function TCACIC_Windows.isWindowsGEXP() : boolean; |
| 248 | begin | 305 | begin |
| 249 | Result := false; | 306 | Result := false; |
| 250 | - if((g_osVerInfo.dwMajorVersion >= 5) and (g_osVerInfo.dwMinorVersion >= 1)) then | ||
| 251 | - Result := true; | 307 | + if(Self.g_osVersionInfoExtended) then begin |
| 308 | + if((g_osVersionInfoEx.dwMajorVersion >= 5) and (g_osVersionInfoEx.dwMinorVersion >= 1)) then | ||
| 309 | + Result := true; | ||
| 310 | + end | ||
| 311 | + else | ||
| 312 | + if((g_osVersionInfo.dwMajorVersion >= 5) and (g_osVersionInfo.dwMinorVersion >= 1)) then | ||
| 313 | + Result := true; | ||
| 252 | end; | 314 | end; |
| 253 | 315 | ||
| 254 | {*------------------------------------------------------------------------------ | 316 | {*------------------------------------------------------------------------------ |
| @@ -261,8 +323,13 @@ end; | @@ -261,8 +323,13 @@ end; | ||
| 261 | function TCACIC_Windows.isWindowsXP() : boolean; | 323 | function TCACIC_Windows.isWindowsXP() : boolean; |
| 262 | begin | 324 | begin |
| 263 | Result := false; | 325 | Result := false; |
| 264 | - if((g_osVerInfo.dwMajorVersion = 5) and (g_osVerInfo.dwMinorVersion = 1)) then | ||
| 265 | - Result := true; | 326 | + if(Self.g_osVersionInfoExtended) then begin |
| 327 | + if((g_osVersionInfoEx.dwMajorVersion = 5) and (g_osVersionInfoEx.dwMinorVersion = 1)) then | ||
| 328 | + Result := true; | ||
| 329 | + end | ||
| 330 | + else | ||
| 331 | + if((g_osVersionInfo.dwMajorVersion = 5) and (g_osVersionInfo.dwMinorVersion = 1)) then | ||
| 332 | + Result := true; | ||
| 266 | end; | 333 | end; |
| 267 | 334 | ||
| 268 | {*------------------------------------------------------------------------------ | 335 | {*------------------------------------------------------------------------------ |
| @@ -275,8 +342,13 @@ end; | @@ -275,8 +342,13 @@ end; | ||
| 275 | function TCACIC_Windows.isWindows2000() : boolean; | 342 | function TCACIC_Windows.isWindows2000() : boolean; |
| 276 | begin | 343 | begin |
| 277 | Result := false; | 344 | Result := false; |
| 278 | - if((g_osVerInfo.dwMajorVersion = 5) and (g_osVerInfo.dwMinorVersion = 0)) then | ||
| 279 | - Result := true; | 345 | + if(Self.g_osVersionInfoExtended) then begin |
| 346 | + if((g_osVersionInfoEx.dwMajorVersion = 5) and (g_osVersionInfoEx.dwMinorVersion = 0)) then | ||
| 347 | + Result := true; | ||
| 348 | + end | ||
| 349 | + else | ||
| 350 | + if((g_osVersionInfo.dwMajorVersion = 5) and (g_osVersionInfo.dwMinorVersion = 0)) then | ||
| 351 | + Result := true; | ||
| 280 | end; | 352 | end; |
| 281 | 353 | ||
| 282 | {*------------------------------------------------------------------------------ | 354 | {*------------------------------------------------------------------------------ |
| @@ -289,8 +361,13 @@ end; | @@ -289,8 +361,13 @@ end; | ||
| 289 | function TCACIC_Windows.isWindowsNT() : boolean; | 361 | function TCACIC_Windows.isWindowsNT() : boolean; |
| 290 | begin | 362 | begin |
| 291 | Result := false; | 363 | Result := false; |
| 292 | - if((g_osVerInfo.dwMajorVersion = 4) and (g_osVerInfo.dwMinorVersion = 0)) then | ||
| 293 | - Result := true; | 364 | + if(Self.g_osVersionInfoExtended) then begin |
| 365 | + if((g_osVersionInfoEx.dwMajorVersion = 4) and (g_osVersionInfoEx.dwMinorVersion = 0)) then | ||
| 366 | + Result := true; | ||
| 367 | + end | ||
| 368 | + else | ||
| 369 | + if((g_osVersionInfo.dwMajorVersion = 4) and (g_osVersionInfo.dwMinorVersion = 0)) then | ||
| 370 | + Result := true; | ||
| 294 | end; | 371 | end; |
| 295 | 372 | ||
| 296 | {*------------------------------------------------------------------------------ | 373 | {*------------------------------------------------------------------------------ |
| @@ -302,7 +379,10 @@ end; | @@ -302,7 +379,10 @@ end; | ||
| 302 | -------------------------------------------------------------------------------} | 379 | -------------------------------------------------------------------------------} |
| 303 | function TCACIC_Windows.isWindows9xME() : boolean; | 380 | function TCACIC_Windows.isWindows9xME() : boolean; |
| 304 | begin | 381 | begin |
| 305 | - Result := (Self.g_osVerInfo.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS); | 382 | + if (Self.g_osVersionInfoExtended) then |
| 383 | + Result := (Self.g_osVersionInfoEx.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS) | ||
| 384 | + else | ||
| 385 | + Result := (Self.g_osVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS); | ||
| 306 | end; | 386 | end; |
| 307 | 387 | ||
| 308 | {*------------------------------------------------------------------------------ | 388 | {*------------------------------------------------------------------------------ |
| @@ -312,13 +392,35 @@ end; | @@ -312,13 +392,35 @@ end; | ||
| 312 | @example 1.4.10.A | 392 | @example 1.4.10.A |
| 313 | -------------------------------------------------------------------------------} | 393 | -------------------------------------------------------------------------------} |
| 314 | function TCACIC_Windows.getWindowsStrId() : string; | 394 | function TCACIC_Windows.getWindowsStrId() : string; |
| 395 | +var | ||
| 396 | + v_version_id: string; | ||
| 315 | begin | 397 | begin |
| 316 | - Result := IntToStr(Self.g_osVerInfo.dwPlatformId) + '.' + | ||
| 317 | - IntToStr(Self.g_osVerInfo.dwMajorVersion) + '.' + | ||
| 318 | - IntToStr(Self.g_osVerInfo.dwMinorVersion) + | ||
| 319 | - ifThen(trim(Self.g_osVerInfo.szCSDVersion)='', | ||
| 320 | - '', | ||
| 321 | - '.'+Self.g_osVerInfo.szCSDVersion); | 398 | + v_version_id := 'S.O.unknown'; |
| 399 | + try | ||
| 400 | + if (Self.g_osVersionInfoExtended) then | ||
| 401 | + if(Self.isWindows9xME) then | ||
| 402 | + v_version_id := IntToStr(Self.g_osVersionInfoEx.dwPlatformId) + '.' + | ||
| 403 | + IntToStr(Self.g_osVersionInfoEx.dwMajorVersion) + '.' + | ||
| 404 | + IntToStr(Self.g_osVersionInfoEx.dwMinorVersion) + | ||
| 405 | + ifThen(trim(Self.g_osVersionInfoEx.szCSDVersion)='', | ||
| 406 | + '', | ||
| 407 | + '.'+trim(Self.g_osVersionInfoEx.szCSDVersion)) | ||
| 408 | + else | ||
| 409 | + v_version_id := IntToStr(Self.g_osVersionInfoEx.dwPlatformId) + '.' + | ||
| 410 | + IntToStr(Self.g_osVersionInfoEx.dwMajorVersion) + '.' + | ||
| 411 | + IntToStr(Self.g_osVersionInfoEx.dwMinorVersion) + '.' + | ||
| 412 | + IntToStr(Self.g_osVersionInfoEx.wProductType) + '.' + | ||
| 413 | + IntToStr(Self.g_osVersionInfoEx.wSuiteMask) | ||
| 414 | + else | ||
| 415 | + v_version_id := IntToStr(Self.g_osVersionInfo.dwPlatformId) + '.' + | ||
| 416 | + IntToStr(Self.g_osVersionInfo.dwMajorVersion) + '.' + | ||
| 417 | + IntToStr(Self.g_osVersionInfo.dwMinorVersion) + | ||
| 418 | + ifThen(trim(Self.g_osVersionInfo.szCSDVersion)='', | ||
| 419 | + '', | ||
| 420 | + '.'+trim(Self.g_osVersionInfo.szCSDVersion)); | ||
| 421 | + except | ||
| 422 | + end; | ||
| 423 | + Result := v_version_id; | ||
| 322 | 424 | ||
| 323 | end; | 425 | end; |
| 324 | 426 | ||
| @@ -330,7 +432,9 @@ end; | @@ -330,7 +432,9 @@ end; | ||
| 330 | -------------------------------------------------------------------------------} | 432 | -------------------------------------------------------------------------------} |
| 331 | function TCACIC_Windows.isWindowsNTPlataform() : boolean; | 433 | function TCACIC_Windows.isWindowsNTPlataform() : boolean; |
| 332 | begin | 434 | begin |
| 333 | - Result := (Self.g_osVerInfo.dwPlatformId = VER_PLATFORM_WIN32_NT); | 435 | + if(Self.g_osVersionInfoExtended) |
| 436 | + then Result := (Self.g_osVersionInfoEx.dwPlatformId = VER_PLATFORM_WIN32_NT) | ||
| 437 | + else Result := (Self.g_osVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_NT); | ||
| 334 | end; | 438 | end; |
| 335 | 439 | ||
| 336 | {*------------------------------------------------------------------------------ | 440 | {*------------------------------------------------------------------------------ |
chkcacic/main.pas
| @@ -87,7 +87,6 @@ uses Windows, | @@ -87,7 +87,6 @@ uses Windows, | ||
| 87 | 87 | ||
| 88 | var v_ip_serv_cacic, | 88 | var v_ip_serv_cacic, |
| 89 | v_cacic_dir, | 89 | v_cacic_dir, |
| 90 | -// v_rem_cacic_v0x, | ||
| 91 | v_te_instala_frase_sucesso, | 90 | v_te_instala_frase_sucesso, |
| 92 | v_te_instala_frase_insucesso, | 91 | v_te_instala_frase_insucesso, |
| 93 | v_te_instala_informacoes_extras, | 92 | v_te_instala_informacoes_extras, |
| @@ -105,7 +104,6 @@ var v_ip_serv_cacic, | @@ -105,7 +104,6 @@ var v_ip_serv_cacic, | ||
| 105 | v_versao_LOC, | 104 | v_versao_LOC, |
| 106 | v_te_so : String; | 105 | v_te_so : String; |
| 107 | 106 | ||
| 108 | - intWinVer : integer; | ||
| 109 | v_Debugs : boolean; | 107 | v_Debugs : boolean; |
| 110 | 108 | ||
| 111 | var v_tstrCipherOpened : TStrings; | 109 | var v_tstrCipherOpened : TStrings; |
| @@ -135,7 +133,6 @@ procedure LogDiario(strMsg : String); | @@ -135,7 +133,6 @@ procedure LogDiario(strMsg : String); | ||
| 135 | procedure Matar(v_dir,v_files: string); // 2.2.0.16 | 133 | procedure Matar(v_dir,v_files: string); // 2.2.0.16 |
| 136 | Procedure MostraFormConfigura; | 134 | Procedure MostraFormConfigura; |
| 137 | 135 | ||
| 138 | -function abstraiCSD(p_te_so : String) : integer; | ||
| 139 | Function ChecaVersoesAgentes(p_strNomeAgente : String) : integer; // 2.2.0.16 | 136 | Function ChecaVersoesAgentes(p_strNomeAgente : String) : integer; // 2.2.0.16 |
| 140 | Function Explode(Texto, Separador : String) : TStrings; | 137 | Function Explode(Texto, Separador : String) : TStrings; |
| 141 | Function FindWindowByTitle(WindowTitle: string): Hwnd; | 138 | Function FindWindowByTitle(WindowTitle: string): Hwnd; |
| @@ -147,7 +144,6 @@ Function GetRootKey(strRootKey: String): HKEY; | @@ -147,7 +144,6 @@ Function GetRootKey(strRootKey: String): HKEY; | ||
| 147 | Function GetValorChaveRegEdit(Chave: String): Variant; | 144 | Function GetValorChaveRegEdit(Chave: String): Variant; |
| 148 | Function GetValorChaveRegIni(p_Secao, p_Chave, p_File : String): String; | 145 | Function GetValorChaveRegIni(p_Secao, p_Chave, p_File : String): String; |
| 149 | Function GetVersionInfo(p_File: string):string; | 146 | Function GetVersionInfo(p_File: string):string; |
| 150 | -Function GetWinVer: Integer; | ||
| 151 | Function HomeDrive : string; | 147 | Function HomeDrive : string; |
| 152 | Function KillTask(ExeFileName: string): Integer; | 148 | Function KillTask(ExeFileName: string): Integer; |
| 153 | Function ListFileDir(Path: string):string; | 149 | Function ListFileDir(Path: string):string; |
| @@ -175,83 +171,7 @@ implementation | @@ -175,83 +171,7 @@ implementation | ||
| 175 | uses FormConfig; | 171 | uses FormConfig; |
| 176 | 172 | ||
| 177 | {$R *.dfm} | 173 | {$R *.dfm} |
| 178 | -function GetWinVer: Integer; | ||
| 179 | -const | ||
| 180 | - { operating system (OS)constants } | ||
| 181 | - cOsUnknown = 0; | ||
| 182 | - cOsWin95 = 1; | ||
| 183 | - cOsWin95OSR2 = 2; // Não implementado. | ||
| 184 | - cOsWin98 = 3; | ||
| 185 | - cOsWin98SE = 4; | ||
| 186 | - cOsWinME = 5; | ||
| 187 | - cOsWinNT = 6; | ||
| 188 | - cOsWin2000 = 7; | ||
| 189 | - cOsXP = 8; | ||
| 190 | - cOsServer2003 = 13; | ||
| 191 | -var | ||
| 192 | - osVerInfo: TOSVersionInfo; | ||
| 193 | - platformID, | ||
| 194 | - majorVer, | ||
| 195 | - minorVer: Integer; | ||
| 196 | - CSDVersion : String; | ||
| 197 | -begin | ||
| 198 | - Result := cOsUnknown; | ||
| 199 | - { set operating system type flag } | ||
| 200 | - osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); | ||
| 201 | - if GetVersionEx(osVerInfo) then | ||
| 202 | - begin | ||
| 203 | - platformId := osVerInfo.dwPlatformId; | ||
| 204 | - majorVer := osVerInfo.dwMajorVersion; | ||
| 205 | - minorVer := osVerInfo.dwMinorVersion; | ||
| 206 | - CSDVersion := trim(osVerInfo.szCSDVersion); | ||
| 207 | - | ||
| 208 | - case osVerInfo.dwPlatformId of | ||
| 209 | - VER_PLATFORM_WIN32_NT: { Windows NT/2000 } | ||
| 210 | - begin | ||
| 211 | - if majorVer <= 4 then | ||
| 212 | - Result := cOsWinNT | ||
| 213 | - else if (majorVer = 5) and (minorVer = 0) then | ||
| 214 | - Result := cOsWin2000 | ||
| 215 | - else if (majorVer = 5) and (minorVer = 1) then | ||
| 216 | - Result := cOsXP | ||
| 217 | - else if (majorVer = 5) and (minorVer = 2) then | ||
| 218 | - Result := cOsServer2003 | ||
| 219 | - else | ||
| 220 | - Result := cOsUnknown; | ||
| 221 | - end; | ||
| 222 | - VER_PLATFORM_WIN32_WINDOWS: { Windows 9x/ME } | ||
| 223 | - begin | ||
| 224 | - if (majorVer = 4) and (minorVer = 0) then | ||
| 225 | - Result := cOsWin95 | ||
| 226 | - else if (majorVer = 4) and (minorVer = 10) then | ||
| 227 | - begin | ||
| 228 | - if osVerInfo.szCSDVersion[1] = 'A' then | ||
| 229 | - Result := cOsWin98SE | ||
| 230 | - else | ||
| 231 | - Result := cOsWin98; | ||
| 232 | - end | ||
| 233 | - else if (majorVer = 4) and (minorVer = 90) then | ||
| 234 | - Result := cOsWinME | ||
| 235 | - else | ||
| 236 | - Result := cOsUnknown; | ||
| 237 | - end; | ||
| 238 | - else | ||
| 239 | - Result := cOsUnknown; | ||
| 240 | - end; | ||
| 241 | - end | ||
| 242 | - else | ||
| 243 | - Result := cOsUnknown; | ||
| 244 | - | ||
| 245 | - // A partir da versão 2.2.0.24, defino o valor da ID Interna e atribuo-a sem o CSDVersion à versão externa | ||
| 246 | - v_te_so := IntToStr(platformId) + '.' + | ||
| 247 | - IntToStr(majorVer) + '.' + | ||
| 248 | - IntToStr(minorVer) + | ||
| 249 | - IfThen(CSDVersion='','','.'+CSDVersion); | ||
| 250 | - if (Result = 0) then | ||
| 251 | - Result := abstraiCSD(v_te_so); | ||
| 252 | 174 | ||
| 253 | - LogDebug('GetWinVer => ID_interna: '+ v_te_so + ' ID_Externa: ' + IntToStr(Result)); | ||
| 254 | -end; | ||
| 255 | function GetNetworkUserName : String; | 175 | function GetNetworkUserName : String; |
| 256 | // Gets the name of the user currently logged into the network on | 176 | // Gets the name of the user currently logged into the network on |
| 257 | // the local PC | 177 | // the local PC |
| @@ -360,7 +280,6 @@ begin | @@ -360,7 +280,6 @@ begin | ||
| 360 | CloseFile(HistoricoLog); {Fecha o arquivo texto} | 280 | CloseFile(HistoricoLog); {Fecha o arquivo texto} |
| 361 | except | 281 | except |
| 362 | //Erro na gravação do log! | 282 | //Erro na gravação do log! |
| 363 | - //Application.Terminate; | ||
| 364 | end; | 283 | end; |
| 365 | end; | 284 | end; |
| 366 | 285 | ||
| @@ -368,10 +287,6 @@ procedure LogDebug(p_msg:string); | @@ -368,10 +287,6 @@ procedure LogDebug(p_msg:string); | ||
| 368 | Begin | 287 | Begin |
| 369 | if v_Debugs then | 288 | if v_Debugs then |
| 370 | Begin | 289 | Begin |
| 371 | - | ||
| 372 | - //if FileExists(Dir + '\Temp\Debugs\show.txt') then | ||
| 373 | - // ShowMessage('DEBUG - '+p_msg); | ||
| 374 | - | ||
| 375 | LogDiario('(v.'+getVersionInfo(ParamStr(0))+') DEBUG - '+p_msg); | 290 | LogDiario('(v.'+getVersionInfo(ParamStr(0))+') DEBUG - '+p_msg); |
| 376 | End; | 291 | End; |
| 377 | End; | 292 | End; |
| @@ -525,7 +440,7 @@ begin | @@ -525,7 +440,7 @@ begin | ||
| 525 | if (trim(v_strCipherOpened)<>'') then | 440 | if (trim(v_strCipherOpened)<>'') then |
| 526 | Result := explode(v_strCipherOpened,v_SeparatorKey) | 441 | Result := explode(v_strCipherOpened,v_SeparatorKey) |
| 527 | else | 442 | else |
| 528 | - Result := explode('Configs.ID_SO'+v_SeparatorKey+inttostr(intWinVer)+v_SeparatorKey+'Configs.Endereco_WS'+v_SeparatorKey+'/cacic2/ws/',v_SeparatorKey); | 443 | + Result := explode('Configs.ID_SO'+v_SeparatorKey+ g_oCacic.getWindowsStrId() +v_SeparatorKey+'Configs.Endereco_WS'+v_SeparatorKey+'/cacic2/ws/',v_SeparatorKey); |
| 529 | 444 | ||
| 530 | 445 | ||
| 531 | if Result.Count mod 2 <> 0 then | 446 | if Result.Count mod 2 <> 0 then |
| @@ -564,14 +479,6 @@ end; | @@ -564,14 +479,6 @@ end; | ||
| 564 | 479 | ||
| 565 | 480 | ||
| 566 | 481 | ||
| 567 | -function abstraiCSD(p_te_so : String) : integer; | ||
| 568 | - var tstrTe_so : tstrings; | ||
| 569 | - Begin | ||
| 570 | - tstrTe_so := Explode(p_te_so, '.'); | ||
| 571 | - Result := StrToInt(tstrTe_so[0] + tstrTe_so[1] + tstrTe_so[2]); | ||
| 572 | - LogDebug('abstraiCSD=> '+ tstrTe_so[0] + tstrTe_so[1] + tstrTe_so[2]); | ||
| 573 | - End; | ||
| 574 | - | ||
| 575 | function GetVersionInfo(p_File: string):string; | 482 | function GetVersionInfo(p_File: string):string; |
| 576 | begin | 483 | begin |
| 577 | Form1.PJVersionInfo1.FileName := PChar(p_File); | 484 | Form1.PJVersionInfo1.FileName := PChar(p_File); |
| @@ -1041,31 +948,6 @@ begin | @@ -1041,31 +948,6 @@ begin | ||
| 1041 | End; | 948 | End; |
| 1042 | end; | 949 | end; |
| 1043 | 950 | ||
| 1044 | -{ | ||
| 1045 | -// Dica obtida em http://www.webmundi.com/delphi/dfuncaof.asp?SubTipo=Sistema | ||
| 1046 | -Function DriveType(Unidade: String):String; | ||
| 1047 | -Var StrDrive, | ||
| 1048 | - StrDriveType : String; | ||
| 1049 | - intDriveType : Integer; | ||
| 1050 | -begin | ||
| 1051 | - StrDrive := Unidade; | ||
| 1052 | - If StrDrive[Length(StrDrive)] <> '\' Then | ||
| 1053 | - StrDrive := StrDrive + ':\'; | ||
| 1054 | - | ||
| 1055 | - intDriveType := GetDriveType(PChar(StrDrive)); | ||
| 1056 | - Case intDriveType Of | ||
| 1057 | - 0 : StrDriveType := 'ERRO'; | ||
| 1058 | - 1 : StrDriveType := 'ERRO'; | ||
| 1059 | - DRIVE_REMOVABLE : StrDriveType := 'FLOPPY'; | ||
| 1060 | - DRIVE_FIXED : StrDriveType := 'HD'; | ||
| 1061 | - DRIVE_REMOTE : StrDriveType := 'REDE'; | ||
| 1062 | - DRIVE_CDROM : StrDriveType := 'CDROM'; | ||
| 1063 | - DRIVE_RAMDISK : StrDriveType := 'RAM'; | ||
| 1064 | - end; | ||
| 1065 | - Result := StrDriveType; | ||
| 1066 | -End; | ||
| 1067 | -} | ||
| 1068 | - | ||
| 1069 | Function ChecaVersoesAgentes(p_strNomeAgente : String) : integer; // 2.2.0.16 | 951 | Function ChecaVersoesAgentes(p_strNomeAgente : String) : integer; // 2.2.0.16 |
| 1070 | var strNomeAgente : String; | 952 | var strNomeAgente : String; |
| 1071 | v_array_NomeAgente : TStrings; | 953 | v_array_NomeAgente : TStrings; |
| @@ -1341,12 +1223,11 @@ begin | @@ -1341,12 +1223,11 @@ begin | ||
| 1341 | End; | 1223 | End; |
| 1342 | End; | 1224 | End; |
| 1343 | 1225 | ||
| 1344 | - intWinVer := GetWinVer; | ||
| 1345 | - | ||
| 1346 | // Verifica se o S.O. é NT Like e se o Usuário está com privilégio administrativo... | 1226 | // Verifica se o S.O. é NT Like e se o Usuário está com privilégio administrativo... |
| 1347 | if (g_oCacic.isWindowsNTPlataform()) and (not g_oCacic.isWindowsAdmin()) then begin // Se NT/2000/XP/... | 1227 | if (g_oCacic.isWindowsNTPlataform()) and (not g_oCacic.isWindowsAdmin()) then begin // Se NT/2000/XP/... |
| 1348 | if (v_exibe_informacoes = 'S') then | 1228 | if (v_exibe_informacoes = 'S') then |
| 1349 | MessageDLG(#13#10+'ATENÇÃO! Essa aplicação requer execução com nível administrativo.',mtError,[mbOK],0); | 1229 | MessageDLG(#13#10+'ATENÇÃO! Essa aplicação requer execução com nível administrativo.',mtError,[mbOK],0); |
| 1230 | + LogDiario('Sem Privilégios: Necessário ser administrador "local" da estação'); | ||
| 1350 | ComunicaInsucesso('0'); // O indicador "0" (zero) sinalizará falta de privilégio na estação | 1231 | ComunicaInsucesso('0'); // O indicador "0" (zero) sinalizará falta de privilégio na estação |
| 1351 | end | 1232 | end |
| 1352 | else begin | 1233 | else begin |
chksis/chksis.dpr
| @@ -54,10 +54,11 @@ var PJVersionInfo1: TPJVersionInfo; | @@ -54,10 +54,11 @@ var PJVersionInfo1: TPJVersionInfo; | ||
| 54 | v_versao_remota, | 54 | v_versao_remota, |
| 55 | v_retorno, | 55 | v_retorno, |
| 56 | v_te_so : String; | 56 | v_te_so : String; |
| 57 | - intWinVer : integer; | ||
| 58 | v_Debugs : Boolean; | 57 | v_Debugs : Boolean; |
| 59 | var v_tstrCipherOpened : TStrings; | 58 | var v_tstrCipherOpened : TStrings; |
| 60 | 59 | ||
| 60 | +var g_oCacic : TCACIC; | ||
| 61 | + | ||
| 61 | // Some constants that are dependant on the cipher being used | 62 | // Some constants that are dependant on the cipher being used |
| 62 | // Assuming MCRYPT_RIJNDAEL_128 (i.e., 128bit blocksize, 256bit keysize) | 63 | // Assuming MCRYPT_RIJNDAEL_128 (i.e., 128bit blocksize, 256bit keysize) |
| 63 | const KeySize = 32; // 32 bytes = 256 bits | 64 | const KeySize = 32; // 32 bytes = 256 bits |
| @@ -269,14 +270,8 @@ begin | @@ -269,14 +270,8 @@ begin | ||
| 269 | Append(v_DatFile); | 270 | Append(v_DatFile); |
| 270 | End; | 271 | End; |
| 271 | 272 | ||
| 272 | - //v_Cipher := TDCP_rijndael.Create(nil); | ||
| 273 | - //v_Cipher.InitStr(v_CipherKey,TDCP_md5); | ||
| 274 | v_strCipherOpenImploded := Implode(v_tstrCipherOpened,v_SeparatorKey); | 273 | v_strCipherOpenImploded := Implode(v_tstrCipherOpened,v_SeparatorKey); |
| 275 | v_strCipherClosed := EnCrypt(v_strCipherOpenImploded); | 274 | v_strCipherClosed := EnCrypt(v_strCipherOpenImploded); |
| 276 | - //log_diario('Finalizando o Arquivo de Configurações com criptografia de: '+v_strCipherOpenImploded,ExtractFilePath(ParamStr(0))); | ||
| 277 | - //v_strCipherClosed := v_Cipher.EncryptString(v_strCipherOpenImploded); | ||
| 278 | - //v_Cipher.Burn; | ||
| 279 | - //v_Cipher.Free; | ||
| 280 | 275 | ||
| 281 | Writeln(v_DatFile,v_strCipherClosed); {Grava a string Texto no arquivo texto} | 276 | Writeln(v_DatFile,v_strCipherClosed); {Grava a string Texto no arquivo texto} |
| 282 | 277 | ||
| @@ -286,90 +281,6 @@ begin | @@ -286,90 +281,6 @@ begin | ||
| 286 | end; | 281 | end; |
| 287 | end; | 282 | end; |
| 288 | 283 | ||
| 289 | -function abstraiCSD(p_te_so : String) : integer; | ||
| 290 | - var tstrTe_so : tstrings; | ||
| 291 | - Begin | ||
| 292 | - tstrTe_so := Explode(p_te_so, '.'); | ||
| 293 | - Result := StrToInt(tstrTe_so[0] + tstrTe_so[1] + tstrTe_so[2]); | ||
| 294 | - End; | ||
| 295 | - | ||
| 296 | -function GetWinVer: Integer; | ||
| 297 | -const | ||
| 298 | - { operating system (OS)constants } | ||
| 299 | - cOsUnknown = 0; | ||
| 300 | - cOsWin95 = 1; | ||
| 301 | - cOsWin95OSR2 = 2; // Não implementado. | ||
| 302 | - cOsWin98 = 3; | ||
| 303 | - cOsWin98SE = 4; | ||
| 304 | - cOsWinME = 5; | ||
| 305 | - cOsWinNT = 6; | ||
| 306 | - cOsWin2000 = 7; | ||
| 307 | - cOsXP = 8; | ||
| 308 | - cOsServer2003 = 13; | ||
| 309 | -var | ||
| 310 | - osVerInfo: TOSVersionInfo; | ||
| 311 | - platformID, | ||
| 312 | - majorVer, | ||
| 313 | - minorVer: Integer; | ||
| 314 | - CSDVersion : String; | ||
| 315 | -begin | ||
| 316 | - Result := cOsUnknown; | ||
| 317 | - { set operating system type flag } | ||
| 318 | - osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); | ||
| 319 | - if GetVersionEx(osVerInfo) then | ||
| 320 | - begin | ||
| 321 | - platformId := osVerInfo.dwPlatformId; | ||
| 322 | - majorVer := osVerInfo.dwMajorVersion; | ||
| 323 | - minorVer := osVerInfo.dwMinorVersion; | ||
| 324 | - CSDVersion := trim(osVerInfo.szCSDVersion); | ||
| 325 | - | ||
| 326 | - case osVerInfo.dwPlatformId of | ||
| 327 | - VER_PLATFORM_WIN32_NT: { Windows NT/2000 } | ||
| 328 | - begin | ||
| 329 | - if majorVer <= 4 then | ||
| 330 | - Result := cOsWinNT | ||
| 331 | - else if (majorVer = 5) and (minorVer = 0) then | ||
| 332 | - Result := cOsWin2000 | ||
| 333 | - else if (majorVer = 5) and (minorVer = 1) then | ||
| 334 | - Result := cOsXP | ||
| 335 | - else if (majorVer = 5) and (minorVer = 2) then | ||
| 336 | - Result := cOsServer2003 | ||
| 337 | - else | ||
| 338 | - Result := cOsUnknown; | ||
| 339 | - end; | ||
| 340 | - VER_PLATFORM_WIN32_WINDOWS: { Windows 9x/ME } | ||
| 341 | - begin | ||
| 342 | - if (majorVer = 4) and (minorVer = 0) then | ||
| 343 | - Result := cOsWin95 | ||
| 344 | - else if (majorVer = 4) and (minorVer = 10) then | ||
| 345 | - begin | ||
| 346 | - if osVerInfo.szCSDVersion[1] = 'A' then | ||
| 347 | - Result := cOsWin98SE | ||
| 348 | - else | ||
| 349 | - Result := cOsWin98; | ||
| 350 | - end | ||
| 351 | - else if (majorVer = 4) and (minorVer = 90) then | ||
| 352 | - Result := cOsWinME | ||
| 353 | - else | ||
| 354 | - Result := cOsUnknown; | ||
| 355 | - end; | ||
| 356 | - else | ||
| 357 | - Result := cOsUnknown; | ||
| 358 | - end; | ||
| 359 | - end | ||
| 360 | - else | ||
| 361 | - Result := cOsUnknown; | ||
| 362 | - | ||
| 363 | - // A partir da versão 2.2.0.24, defino o valor da ID Interna e atribuo-a sem o CSDVersion à versão externa | ||
| 364 | - v_te_so := IntToStr(platformId) + '.' + | ||
| 365 | - IntToStr(majorVer) + '.' + | ||
| 366 | - IntToStr(minorVer) + | ||
| 367 | - IfThen(CSDVersion='','','.'+CSDVersion); | ||
| 368 | - if (Result = 0) then | ||
| 369 | - Result := abstraiCSD(v_te_so); | ||
| 370 | - | ||
| 371 | -end; | ||
| 372 | - | ||
| 373 | Function CipherOpen(p_DatFileName : string) : TStrings; | 284 | Function CipherOpen(p_DatFileName : string) : TStrings; |
| 374 | var v_DatFile : TextFile; | 285 | var v_DatFile : TextFile; |
| 375 | v_strCipherOpened, | 286 | v_strCipherOpened, |
| @@ -396,7 +307,7 @@ begin | @@ -396,7 +307,7 @@ begin | ||
| 396 | if (trim(v_strCipherOpened)<>'') then | 307 | if (trim(v_strCipherOpened)<>'') then |
| 397 | Result := explode(v_strCipherOpened,v_SeparatorKey) | 308 | Result := explode(v_strCipherOpened,v_SeparatorKey) |
| 398 | else | 309 | else |
| 399 | - Result := explode('Configs.ID_SO' + v_SeparatorKey + inttostr(intWinVer)+v_SeparatorKey+'Configs.Endereco_WS'+v_SeparatorKey+'/cacic2/ws/',v_SeparatorKey); | 310 | + Result := explode('Configs.ID_SO' + v_SeparatorKey + g_oCacic.getWindowsStrId() +v_SeparatorKey+'Configs.Endereco_WS'+v_SeparatorKey+'/cacic2/ws/',v_SeparatorKey); |
| 400 | 311 | ||
| 401 | if Result.Count mod 2 <> 0 then | 312 | if Result.Count mod 2 <> 0 then |
| 402 | Result.Add(''); | 313 | Result.Add(''); |
| @@ -404,7 +315,6 @@ end; | @@ -404,7 +315,6 @@ end; | ||
| 404 | 315 | ||
| 405 | Procedure SetValorDatMemoria(p_Chave : string; p_Valor : String); | 316 | Procedure SetValorDatMemoria(p_Chave : string; p_Valor : String); |
| 406 | begin | 317 | begin |
| 407 | - //log_diario('Setando chave: '+p_Chave+' com valor: '+p_Valor,ExtractFilePath(ParamStr(0))); | ||
| 408 | // Exemplo: p_Chave => Configs.nu_ip_servidor : p_Valor => 10.71.0.120 | 318 | // Exemplo: p_Chave => Configs.nu_ip_servidor : p_Valor => 10.71.0.120 |
| 409 | if (v_tstrCipherOpened.IndexOf(p_Chave)<>-1) then | 319 | if (v_tstrCipherOpened.IndexOf(p_Chave)<>-1) then |
| 410 | v_tstrCipherOpened[v_tstrCipherOpened.IndexOf(p_Chave)+1] := p_Valor | 320 | v_tstrCipherOpened[v_tstrCipherOpened.IndexOf(p_Chave)+1] := p_Valor |
| @@ -615,7 +525,9 @@ end; | @@ -615,7 +525,9 @@ end; | ||
| 615 | 525 | ||
| 616 | Function FTP(p_Host : String; p_Port : String; p_Username : String; p_Password : String; p_PathServer : String; p_File : String; p_Dest : String) : Boolean; | 526 | Function FTP(p_Host : String; p_Port : String; p_Username : String; p_Password : String; p_PathServer : String; p_File : String; p_Dest : String) : Boolean; |
| 617 | var IdFTP : TIdFTP; | 527 | var IdFTP : TIdFTP; |
| 528 | + msg_error : string; | ||
| 618 | begin | 529 | begin |
| 530 | + msg_error := ''; | ||
| 619 | Try | 531 | Try |
| 620 | IdFTP := TIdFTP.Create(IdFTP); | 532 | IdFTP := TIdFTP.Create(IdFTP); |
| 621 | IdFTP.Host := p_Host; | 533 | IdFTP.Host := p_Host; |
| @@ -629,21 +541,25 @@ begin | @@ -629,21 +541,25 @@ begin | ||
| 629 | begin | 541 | begin |
| 630 | IdFTP.Disconnect; | 542 | IdFTP.Disconnect; |
| 631 | end; | 543 | end; |
| 544 | + msg_error := 'Falha ao tentar conexão com o servidor FTP: "' + p_Host + '"'; | ||
| 632 | IdFTP.Connect(true); | 545 | IdFTP.Connect(true); |
| 546 | + msg_error := 'Falha ao tentar mudar diretório no servidor FTP: "' + p_PathServer + '"'; | ||
| 633 | IdFTP.ChangeDir(p_PathServer); | 547 | IdFTP.ChangeDir(p_PathServer); |
| 634 | Try | 548 | Try |
| 635 | log_DEBUG('Size de "'+p_File+'" Antes do FTP => '+IntToSTR(IdFTP.Size(p_File))); | 549 | log_DEBUG('Size de "'+p_File+'" Antes do FTP => '+IntToSTR(IdFTP.Size(p_File))); |
| 550 | + msg_error := 'Falha ao tentar obter arquivo no servidor FTP: "' + p_File + '"'; | ||
| 636 | IdFTP.Get(p_File, p_Dest + '\' + p_File, True); | 551 | IdFTP.Get(p_File, p_Dest + '\' + p_File, True); |
| 637 | log_DEBUG('Size de "'+p_Dest + '\' + p_File +'" Após o FTP => '+Get_File_Size(p_Dest + '\' + p_File,true)); | 552 | log_DEBUG('Size de "'+p_Dest + '\' + p_File +'" Após o FTP => '+Get_File_Size(p_Dest + '\' + p_File,true)); |
| 638 | Finally | 553 | Finally |
| 639 | log_DEBUG('Size de "'+p_Dest + '\' + p_File +'" Após o FTP em Finally => '+Get_File_Size(p_Dest + '\' + p_File,true)); | 554 | log_DEBUG('Size de "'+p_Dest + '\' + p_File +'" Após o FTP em Finally => '+Get_File_Size(p_Dest + '\' + p_File,true)); |
| 640 | idFTP.Disconnect; | 555 | idFTP.Disconnect; |
| 641 | - idFTP.Free; | ||
| 642 | result := true; | 556 | result := true; |
| 643 | End; | 557 | End; |
| 644 | Except | 558 | Except |
| 559 | + log_diario(msg_error); | ||
| 645 | result := false; | 560 | result := false; |
| 646 | end; | 561 | end; |
| 562 | + idFTP.Free; | ||
| 647 | Except | 563 | Except |
| 648 | result := false; | 564 | result := false; |
| 649 | End; | 565 | End; |
| @@ -772,12 +688,10 @@ begin | @@ -772,12 +688,10 @@ begin | ||
| 772 | 688 | ||
| 773 | if not DeleteFile(strFileName) then | 689 | if not DeleteFile(strFileName) then |
| 774 | Begin | 690 | Begin |
| 775 | - if ((intWinVer <> 0) and (intWinVer <= 5)) or | ||
| 776 | - (abstraiCSD(v_te_so) < 250) then // Menor que NT Like | 691 | + if (not g_oCacic.isWindowsNTPlataform()) then // Menor que NT Like |
| 777 | KillTask(SearchRec.Name) | 692 | KillTask(SearchRec.Name) |
| 778 | else | 693 | else |
| 779 | KillProcess(FindWindow(PChar(SearchRec.Name),nil)); | 694 | KillProcess(FindWindow(PChar(SearchRec.Name),nil)); |
| 780 | - | ||
| 781 | DeleteFile(strFileName); | 695 | DeleteFile(strFileName); |
| 782 | End; | 696 | End; |
| 783 | 697 | ||
| @@ -891,8 +805,6 @@ begin | @@ -891,8 +805,6 @@ begin | ||
| 891 | End; | 805 | End; |
| 892 | End; | 806 | End; |
| 893 | 807 | ||
| 894 | - intWinVer := GetWinVer; | ||
| 895 | - | ||
| 896 | // Caso o parâmetro rem_cacic_v0x seja "S/s" removo a chave/valor de execução do Cacic antigo | 808 | // Caso o parâmetro rem_cacic_v0x seja "S/s" removo a chave/valor de execução do Cacic antigo |
| 897 | if (LowerCase(v_rem_cacic_v0x)='s') then | 809 | if (LowerCase(v_rem_cacic_v0x)='s') then |
| 898 | begin | 810 | begin |
| @@ -923,25 +835,12 @@ begin | @@ -923,25 +835,12 @@ begin | ||
| 923 | ForceDirectories(Dir + '\temp'); | 835 | ForceDirectories(Dir + '\temp'); |
| 924 | end; | 836 | end; |
| 925 | 837 | ||
| 926 | - | ||
| 927 | - // Igualo as chaves ip_serv_cacic e cacic dos arquivos chksis.ini e cacic2.ini! | ||
| 928 | -// log_diario('Setando chave Configs/EnderecoServidor=' + v_ip_serv_cacic + ' em '+Dir + '\cacic2.dat',ExtractFilePath(ParamStr(0))); | ||
| 929 | -// SetValorChaveRegIni('Configs', 'EnderecoServidor', v_ip_serv_cacic, Dir + '\cacic2.ini'); | ||
| 930 | - | ||
| 931 | //chave AES. Recomenda-se que cada empresa altere a sua chave. | 838 | //chave AES. Recomenda-se que cada empresa altere a sua chave. |
| 932 | v_CipherKey := 'CacicBrasil'; | 839 | v_CipherKey := 'CacicBrasil'; |
| 933 | v_IV := 'abcdefghijklmnop'; | 840 | v_IV := 'abcdefghijklmnop'; |
| 934 | v_SeparatorKey := '=CacicIsFree='; | 841 | v_SeparatorKey := '=CacicIsFree='; |
| 935 | v_DatFileName := Dir + '\cacic2.dat'; | 842 | v_DatFileName := Dir + '\cacic2.dat'; |
| 936 | - //v_tstrCipherOpened := CipherOpen(v_DatFileName); | ||
| 937 | 843 | ||
| 938 | - //SetValorDatMemoria('Configs.EnderecoServidor', v_ip_serv_cacic); | ||
| 939 | - | ||
| 940 | -// log_diario('Setando chave Configs/cacic_dir=' + v_cacic_dir + ' em '+Dir + '\cacic2.ini',ExtractFilePath(ParamStr(0))); | ||
| 941 | -// SetValorChaveRegIni('Configs', 'cacic_dir', v_cacic_dir, Dir + '\cacic2.ini'); | ||
| 942 | - //SetValorDatMemoria('Configs.cacic_dir', v_cacic_dir); | ||
| 943 | - | ||
| 944 | - //CipherClose(v_DatFileName); | ||
| 945 | // Verifico existência dos dois principais objetos | 844 | // Verifico existência dos dois principais objetos |
| 946 | If (not FileExists(Dir + '\cacic2.exe')) or (not FileExists(Dir + '\modulos\ger_cols.exe')) Then | 845 | If (not FileExists(Dir + '\cacic2.exe')) or (not FileExists(Dir + '\modulos\ger_cols.exe')) Then |
| 947 | Begin | 846 | Begin |
| @@ -1083,10 +982,6 @@ begin | @@ -1083,10 +982,6 @@ begin | ||
| 1083 | End; | 982 | End; |
| 1084 | 983 | ||
| 1085 | // Caso o Cacic tenha sido baixado executo-o com parâmetro de configuração de servidor | 984 | // Caso o Cacic tenha sido baixado executo-o com parâmetro de configuração de servidor |
| 1086 | - //if (bool_download_CACIC2) then | ||
| 1087 | - //Begin | ||
| 1088 | - //if not bool_ExistsAutoRun then | ||
| 1089 | - // Begin | ||
| 1090 | if Posso_Rodar_CACIC or not bool_ExistsAutoRun then | 985 | if Posso_Rodar_CACIC or not bool_ExistsAutoRun then |
| 1091 | Begin | 986 | Begin |
| 1092 | log_diario('Executando '+Dir + '\cacic2.exe /ip_serv_cacic=' + v_ip_serv_cacic); | 987 | log_diario('Executando '+Dir + '\cacic2.exe /ip_serv_cacic=' + v_ip_serv_cacic); |
| @@ -1097,23 +992,16 @@ begin | @@ -1097,23 +992,16 @@ begin | ||
| 1097 | else | 992 | else |
| 1098 | WinExec(PChar(Dir + '\cacic2.exe /ip_serv_cacic=' + v_ip_serv_cacic ), SW_HIDE); | 993 | WinExec(PChar(Dir + '\cacic2.exe /ip_serv_cacic=' + v_ip_serv_cacic ), SW_HIDE); |
| 1099 | End; | 994 | End; |
| 1100 | - // End | ||
| 1101 | - // else | ||
| 1102 | log_diario('Não Executei. Chave de AutoExecução já existente...'); | 995 | log_diario('Não Executei. Chave de AutoExecução já existente...'); |
| 1103 | - //End | ||
| 1104 | - Application.Terminate; | ||
| 1105 | end; | 996 | end; |
| 1106 | 997 | ||
| 1107 | const | 998 | const |
| 1108 | CACIC_APP_NAME = 'chksis'; | 999 | CACIC_APP_NAME = 'chksis'; |
| 1109 | 1000 | ||
| 1110 | -var | ||
| 1111 | - oCacic : TCACIC; | ||
| 1112 | - | ||
| 1113 | begin | 1001 | begin |
| 1114 | - oCacic := TCACIC.Create(); | 1002 | + g_oCacic := TCACIC.Create(); |
| 1115 | 1003 | ||
| 1116 | - if( not oCacic.isAppRunning( CACIC_APP_NAME ) ) | 1004 | + if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) |
| 1117 | then begin | 1005 | then begin |
| 1118 | if (FindWindowByTitle('chkcacic') = 0) and (FindWindowByTitle('cacic2') = 0) | 1006 | if (FindWindowByTitle('chkcacic') = 0) and (FindWindowByTitle('cacic2') = 0) |
| 1119 | then | 1007 | then |
| @@ -1122,7 +1010,7 @@ begin | @@ -1122,7 +1010,7 @@ begin | ||
| 1122 | else log_diario('Não executei devido execução em paralelo de "chkcacic" ou "cacic2"!'); | 1010 | else log_diario('Não executei devido execução em paralelo de "chkcacic" ou "cacic2"!'); |
| 1123 | end; | 1011 | end; |
| 1124 | 1012 | ||
| 1125 | - oCacic.Free(); | 1013 | + g_oCacic.Free(); |
| 1126 | 1014 | ||
| 1127 | end. | 1015 | end. |
| 1128 | 1016 |
chksis/chksis_erro.ini
chksis/main.ddp
No preview for this file type
chksis/main.dfm
| @@ -1,46 +0,0 @@ | @@ -1,46 +0,0 @@ | ||
| 1 | -object Form1: TForm1 | ||
| 2 | - Left = 232 | ||
| 3 | - Top = 106 | ||
| 4 | - Width = 544 | ||
| 5 | - Height = 375 | ||
| 6 | - Caption = 'Form1' | ||
| 7 | - Color = clBtnFace | ||
| 8 | - Font.Charset = DEFAULT_CHARSET | ||
| 9 | - Font.Color = clWindowText | ||
| 10 | - Font.Height = -11 | ||
| 11 | - Font.Name = 'MS Sans Serif' | ||
| 12 | - Font.Style = [] | ||
| 13 | - OldCreateOrder = False | ||
| 14 | - OnCreate = FormCreate | ||
| 15 | - PixelsPerInch = 96 | ||
| 16 | - TextHeight = 13 | ||
| 17 | - object IdFTP1: TIdFTP | ||
| 18 | - MaxLineAction = maException | ||
| 19 | - ReadTimeout = 0 | ||
| 20 | - ProxySettings.ProxyType = fpcmNone | ||
| 21 | - ProxySettings.Port = 0 | ||
| 22 | - Left = 240 | ||
| 23 | - Top = 72 | ||
| 24 | - end | ||
| 25 | - object IdHTTP1: TIdHTTP | ||
| 26 | - MaxLineAction = maException | ||
| 27 | - ReadTimeout = 0 | ||
| 28 | - AllowCookies = True | ||
| 29 | - ProxyParams.BasicAuthentication = False | ||
| 30 | - ProxyParams.ProxyPort = 0 | ||
| 31 | - Request.ContentLength = -1 | ||
| 32 | - Request.ContentRangeEnd = 0 | ||
| 33 | - Request.ContentRangeStart = 0 | ||
| 34 | - Request.ContentType = 'text/html' | ||
| 35 | - Request.Accept = 'text/html, */*' | ||
| 36 | - Request.BasicAuthentication = False | ||
| 37 | - Request.UserAgent = 'Mozilla/3.0 (compatible; Indy Library)' | ||
| 38 | - HTTPOptions = [hoForceEncodeParams] | ||
| 39 | - Left = 320 | ||
| 40 | - Top = 72 | ||
| 41 | - end | ||
| 42 | - object PJVersionInfo1: TPJVersionInfo | ||
| 43 | - Left = 80 | ||
| 44 | - Top = 72 | ||
| 45 | - end | ||
| 46 | -end |
chksis/main.pas
| @@ -1,474 +0,0 @@ | @@ -1,474 +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 | -unit main; | ||
| 19 | - | ||
| 20 | -interface | ||
| 21 | - | ||
| 22 | -uses Windows, SysUtils, Classes, Forms, Registry, Inifiles, XML, LibXmlParser, strUtils,IdHTTP, IdFTP, idFTPCommon, | ||
| 23 | - IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, PJVersionInfo; | ||
| 24 | - | ||
| 25 | -Procedure chksis; | ||
| 26 | -Procedure DelValorReg(Chave: String); | ||
| 27 | -Function FTP(p_Host : String; p_Port : String; p_Username : String; p_Password : String; p_PathServer : String; p_File : String; p_Dest : String) : Boolean; | ||
| 28 | -Function Explode(Texto, Separador : String) : TStrings; | ||
| 29 | -Function GetRootKey(strRootKey: String): HKEY; | ||
| 30 | -Function SetValorChaveRegEdit(Chave: String; Dado: Variant): Variant; | ||
| 31 | -Function GetValorChaveRegEdit(Chave: String): Variant; | ||
| 32 | -function SetValorChaveRegIni(p_Secao, p_Chave, p_Valor, p_File : String): String; | ||
| 33 | -function GetValorChaveRegIni(p_Secao, p_Chave, p_File : String): String; | ||
| 34 | -function HomeDrive : string; | ||
| 35 | -Function RemoveCaracteresEspeciais(Texto : String) : String; | ||
| 36 | -function FindWindowByTitle(WindowTitle: string): Hwnd; | ||
| 37 | -function GetVersionInfo(p_File: string):string; | ||
| 38 | -function VerFmt(const MS, LS: DWORD): string; | ||
| 39 | - | ||
| 40 | -type | ||
| 41 | - TForm1 = class(TForm) | ||
| 42 | - IdFTP1: TIdFTP; | ||
| 43 | - IdHTTP1: TIdHTTP; | ||
| 44 | - PJVersionInfo1: TPJVersionInfo; | ||
| 45 | - procedure FormCreate(Sender: TObject); | ||
| 46 | - private | ||
| 47 | - { Private declarations } | ||
| 48 | - public | ||
| 49 | - { Public declarations } | ||
| 50 | - end; | ||
| 51 | - | ||
| 52 | -var | ||
| 53 | - Form1: TForm1; | ||
| 54 | - Dir, ENDERECO_SERV_CACIC : string; | ||
| 55 | -implementation | ||
| 56 | - | ||
| 57 | -{$R *.dfm} | ||
| 58 | -function VerFmt(const MS, LS: DWORD): string; | ||
| 59 | - // Format the version number from the given DWORDs containing the info | ||
| 60 | -begin | ||
| 61 | - Result := Format('%d.%d.%d.%d', | ||
| 62 | - [HiWord(MS), LoWord(MS), HiWord(LS), LoWord(LS)]) | ||
| 63 | -end; | ||
| 64 | - | ||
| 65 | -{ TMainForm } | ||
| 66 | - | ||
| 67 | -function GetVersionInfo(p_File: string):string; | ||
| 68 | -begin | ||
| 69 | - Form1.PJVersionInfo1.FileName := PChar(p_File); | ||
| 70 | - Result := VerFmt(Form1.PJVersionInfo1.FixedFileInfo.dwFileVersionMS, Form1.PJVersionInfo1.FixedFileInfo.dwFileVersionLS); | ||
| 71 | -end; | ||
| 72 | - | ||
| 73 | -function GetRootKey(strRootKey: String): HKEY; | ||
| 74 | -begin | ||
| 75 | - /// Encontrar uma maneira mais elegante de fazer esses testes. | ||
| 76 | - if Trim(strRootKey) = 'HKEY_LOCAL_MACHINE' Then Result := HKEY_LOCAL_MACHINE | ||
| 77 | - else if Trim(strRootKey) = 'HKEY_CLASSES_ROOT' Then Result := HKEY_CLASSES_ROOT | ||
| 78 | - else if Trim(strRootKey) = 'HKEY_CURRENT_USER' Then Result := HKEY_CURRENT_USER | ||
| 79 | - else if Trim(strRootKey) = 'HKEY_USERS' Then Result := HKEY_USERS | ||
| 80 | - else if Trim(strRootKey) = 'HKEY_CURRENT_CONFIG' Then Result := HKEY_CURRENT_CONFIG | ||
| 81 | - else if Trim(strRootKey) = 'HKEY_DYN_DATA' Then Result := HKEY_DYN_DATA; | ||
| 82 | -end; | ||
| 83 | -function SetValorChaveRegEdit(Chave: String; Dado: Variant): Variant; | ||
| 84 | -var RegEditSet: TRegistry; | ||
| 85 | - RegDataType: TRegDataType; | ||
| 86 | - strRootKey, strKey, strValue : String; | ||
| 87 | - ListaAuxSet : TStrings; | ||
| 88 | - I : Integer; | ||
| 89 | -begin | ||
| 90 | - ListaAuxSet := Explode(Chave, '\'); | ||
| 91 | - strRootKey := ListaAuxSet[0]; | ||
| 92 | - For I := 1 To ListaAuxSet.Count - 2 Do strKey := strKey + ListaAuxSet[I] + '\'; | ||
| 93 | - strValue := ListaAuxSet[ListaAuxSet.Count - 1]; | ||
| 94 | - | ||
| 95 | - RegEditSet := TRegistry.Create; | ||
| 96 | - try | ||
| 97 | - RegEditSet.Access := KEY_WRITE; | ||
| 98 | - RegEditSet.Rootkey := GetRootKey(strRootKey); | ||
| 99 | - | ||
| 100 | - if RegEditSet.OpenKey(strKey, True) then | ||
| 101 | - Begin | ||
| 102 | - RegDataType := RegEditSet.GetDataType(strValue); | ||
| 103 | - if RegDataType = rdString then | ||
| 104 | - begin | ||
| 105 | - RegEditSet.WriteString(strValue, Dado); | ||
| 106 | - end | ||
| 107 | - else if RegDataType = rdExpandString then | ||
| 108 | - begin | ||
| 109 | - RegEditSet.WriteExpandString(strValue, Dado); | ||
| 110 | - end | ||
| 111 | - else if RegDataType = rdInteger then | ||
| 112 | - begin | ||
| 113 | - RegEditSet.WriteInteger(strValue, Dado); | ||
| 114 | - end | ||
| 115 | - else | ||
| 116 | - begin | ||
| 117 | - RegEditSet.WriteString(strValue, Dado); | ||
| 118 | - end; | ||
| 119 | - | ||
| 120 | - end; | ||
| 121 | - finally | ||
| 122 | - RegEditSet.CloseKey; | ||
| 123 | - end; | ||
| 124 | - ListaAuxSet.Free; | ||
| 125 | - RegEditSet.Free; | ||
| 126 | -end; | ||
| 127 | - | ||
| 128 | -Function RemoveCaracteresEspeciais(Texto : String) : String; | ||
| 129 | -var I : Integer; | ||
| 130 | - strAux : String; | ||
| 131 | -Begin | ||
| 132 | - For I := 0 To Length(Texto) Do | ||
| 133 | - if ord(Texto[I]) in [32..126] Then | ||
| 134 | - strAux := strAux + Texto[I] | ||
| 135 | - else strAux := strAux + ' '; // Coloca um espaço onde houver caracteres especiais | ||
| 136 | - Result := strAux; | ||
| 137 | -end; | ||
| 138 | - | ||
| 139 | -//Para buscar do RegEdit... | ||
| 140 | -function GetValorChaveRegEdit(Chave: String): Variant; | ||
| 141 | -var RegEditGet: TRegistry; | ||
| 142 | - RegDataType: TRegDataType; | ||
| 143 | - strRootKey, strKey, strValue, s: String; | ||
| 144 | - ListaAuxGet : TStrings; | ||
| 145 | - DataSize, Len, I : Integer; | ||
| 146 | -begin | ||
| 147 | - try | ||
| 148 | - ListaAuxGet := Explode(Chave, '\'); | ||
| 149 | - | ||
| 150 | - strRootKey := ListaAuxGet[0]; | ||
| 151 | - For I := 1 To ListaAuxGet.Count - 2 Do strKey := strKey + ListaAuxGet[I] + '\'; | ||
| 152 | - strValue := ListaAuxGet[ListaAuxGet.Count - 1]; | ||
| 153 | - RegEditGet := TRegistry.Create; | ||
| 154 | - | ||
| 155 | - RegEditGet.Access := KEY_READ; | ||
| 156 | - RegEditGet.Rootkey := GetRootKey(strRootKey); | ||
| 157 | - if RegEditGet.OpenKeyReadOnly(strKey) then //teste | ||
| 158 | - Begin | ||
| 159 | - RegDataType := RegEditGet.GetDataType(strValue); | ||
| 160 | - if (RegDataType = rdString) or (RegDataType = rdExpandString) then Result := RegEditGet.ReadString(strValue) | ||
| 161 | - else if RegDataType = rdInteger then Result := RegEditGet.ReadInteger(strValue) | ||
| 162 | - else if (RegDataType = rdBinary) or (RegDataType = rdUnknown) | ||
| 163 | - then | ||
| 164 | - begin | ||
| 165 | - DataSize := RegEditGet.GetDataSize(strValue); | ||
| 166 | - if DataSize = -1 then exit; | ||
| 167 | - SetLength(s, DataSize); | ||
| 168 | - Len := RegEditGet.ReadBinaryData(strValue, PChar(s)^, DataSize); | ||
| 169 | - if Len <> DataSize then exit; | ||
| 170 | - Result := RemoveCaracteresEspeciais(s); | ||
| 171 | - end | ||
| 172 | - end; | ||
| 173 | - finally | ||
| 174 | - RegEditGet.CloseKey; | ||
| 175 | - RegEditGet.Free; | ||
| 176 | - ListaAuxGet.Free; | ||
| 177 | - | ||
| 178 | - end; | ||
| 179 | -end; | ||
| 180 | - | ||
| 181 | -//Para gravar no Arquivo INI... | ||
| 182 | -function SetValorChaveRegIni(p_Secao, p_Chave, p_Valor, p_File : String): String; | ||
| 183 | -var Reg_Ini : TIniFile; | ||
| 184 | -begin | ||
| 185 | - FileSetAttr (p_File,0); | ||
| 186 | - Reg_Ini := TIniFile.Create(p_File); | ||
| 187 | -// Reg_Ini.WriteString(utils_cacic.Crip(p_Secao), utils_cacic.Crip(p_Chave), utils_cacic.Crip(p_Valor)); | ||
| 188 | - Reg_Ini.WriteString(p_Secao, p_Chave, p_Valor); | ||
| 189 | - Reg_Ini.Free; | ||
| 190 | -end; | ||
| 191 | - | ||
| 192 | -function GetValorChaveRegIni(p_Secao, p_Chave, p_File : String): String; | ||
| 193 | -//Para buscar do Arquivo INI... | ||
| 194 | -// Marreta devido a limitações do KERNEL w9x no tratamento de arquivos texto e suas seções | ||
| 195 | -//function GetValorChaveRegIni(p_SectionName, p_KeyName, p_IniFileName : String) : String; | ||
| 196 | -var | ||
| 197 | - FileText : TStringList; | ||
| 198 | - i, j, v_Size_Section, v_Size_Key : integer; | ||
| 199 | - v_SectionName, v_KeyName : string; | ||
| 200 | - begin | ||
| 201 | - Result := ''; | ||
| 202 | - v_SectionName := '[' + p_Secao + ']'; | ||
| 203 | - v_Size_Section := strLen(PChar(v_SectionName)); | ||
| 204 | - v_KeyName := p_Chave + '='; | ||
| 205 | - v_Size_Key := strLen(PChar(v_KeyName)); | ||
| 206 | - FileText := TStringList.Create; | ||
| 207 | - try | ||
| 208 | - FileText.LoadFromFile(p_File); | ||
| 209 | - For i := 0 To FileText.Count - 1 Do | ||
| 210 | - Begin | ||
| 211 | - if (LowerCase(Trim(PChar(Copy(FileText[i],1,v_Size_Section)))) = LowerCase(Trim(PChar(v_SectionName)))) then | ||
| 212 | - Begin | ||
| 213 | - For j := i to FileText.Count - 1 Do | ||
| 214 | - Begin | ||
| 215 | - if (LowerCase(Trim(PChar(Copy(FileText[j],1,v_Size_Key)))) = LowerCase(Trim(PChar(v_KeyName)))) then | ||
| 216 | - Begin | ||
| 217 | - Result := PChar(Copy(FileText[j],v_Size_Key + 1,strLen(PChar(FileText[j]))-v_Size_Key)); | ||
| 218 | - Break; | ||
| 219 | - End; | ||
| 220 | - End; | ||
| 221 | - End; | ||
| 222 | - if (Result <> '') then break; | ||
| 223 | - End; | ||
| 224 | - finally | ||
| 225 | - FileText.Free; | ||
| 226 | - end; | ||
| 227 | - end; | ||
| 228 | - | ||
| 229 | - | ||
| 230 | -Procedure DelValorReg(Chave: String); | ||
| 231 | -var RegDelValorReg: TRegistry; | ||
| 232 | - strRootKey, strKey, strValue : String; | ||
| 233 | - ListaAuxDel : TStrings; | ||
| 234 | - I : Integer; | ||
| 235 | -begin | ||
| 236 | - ListaAuxDel := Explode(Chave, '\'); | ||
| 237 | - strRootKey := ListaAuxDel[0]; | ||
| 238 | - For I := 1 To ListaAuxDel.Count - 2 Do strKey := strKey + ListaAuxDel[I] + '\'; | ||
| 239 | - strValue := ListaAuxDel[ListaAuxDel.Count - 1]; | ||
| 240 | - RegDelValorReg := TRegistry.Create; | ||
| 241 | - | ||
| 242 | - try | ||
| 243 | - RegDelValorReg.Access := KEY_WRITE; | ||
| 244 | - RegDelValorReg.Rootkey := GetRootKey(strRootKey); | ||
| 245 | - | ||
| 246 | - if RegDelValorReg.OpenKey(strKey, True) then | ||
| 247 | - RegDelValorReg.DeleteValue(strValue); | ||
| 248 | - finally | ||
| 249 | - RegDelValorReg.CloseKey; | ||
| 250 | - end; | ||
| 251 | - RegDelValorReg.Free; | ||
| 252 | - ListaAuxDel.Free; | ||
| 253 | -end; | ||
| 254 | - | ||
| 255 | - | ||
| 256 | -Function Explode(Texto, Separador : String) : TStrings; | ||
| 257 | -var | ||
| 258 | - strItem : String; | ||
| 259 | - ListaAuxUTILS : TStrings; | ||
| 260 | - NumCaracteres, I : Integer; | ||
| 261 | -Begin | ||
| 262 | - ListaAuxUTILS := TStringList.Create; | ||
| 263 | - strItem := ''; | ||
| 264 | - NumCaracteres := Length(Texto); | ||
| 265 | - For I := 0 To NumCaracteres Do | ||
| 266 | - If (Texto[I] = Separador) or (I = NumCaracteres) Then | ||
| 267 | - Begin | ||
| 268 | - If (I = NumCaracteres) then strItem := strItem + Texto[I]; | ||
| 269 | - ListaAuxUTILS.Add(Trim(strItem)); | ||
| 270 | - strItem := ''; | ||
| 271 | - end | ||
| 272 | - Else strItem := strItem + Texto[I]; | ||
| 273 | - Explode := ListaAuxUTILS; | ||
| 274 | -end; | ||
| 275 | - | ||
| 276 | -Function FTP(p_Host : String; p_Port : String; p_Username : String; p_Password : String; p_PathServer : String; p_File : String; p_Dest : String) : Boolean; | ||
| 277 | -var IdFTP : TIdFTP; | ||
| 278 | -begin | ||
| 279 | - Try | ||
| 280 | - IdFTP := TIdFTP.Create(IdFTP); | ||
| 281 | - IdFTP.Host := p_Host; | ||
| 282 | - IdFTP.Username := p_Username; | ||
| 283 | - IdFTP.Password := p_Password; | ||
| 284 | - IdFTP.Port := strtoint(p_Port); | ||
| 285 | - IdFTP.TransferType := ftBinary; | ||
| 286 | - Try | ||
| 287 | - if IdFTP.Connected = true then | ||
| 288 | - begin | ||
| 289 | - IdFTP.Disconnect; | ||
| 290 | - end; | ||
| 291 | - IdFTP.Connect(true); | ||
| 292 | - IdFTP.ChangeDir(p_PathServer); | ||
| 293 | - Try | ||
| 294 | - IdFTP.Get(p_File, p_Dest + '\' + p_File, True); | ||
| 295 | - result := true; | ||
| 296 | - Except | ||
| 297 | - result := false; | ||
| 298 | - End; | ||
| 299 | - Except | ||
| 300 | - result := false; | ||
| 301 | - end; | ||
| 302 | - Except | ||
| 303 | - result := false; | ||
| 304 | - End; | ||
| 305 | -end; | ||
| 306 | - | ||
| 307 | - | ||
| 308 | -function HomeDrive : string; | ||
| 309 | -var | ||
| 310 | -WinDir : array [0..144] of char; | ||
| 311 | -begin | ||
| 312 | -GetWindowsDirectory (WinDir, 144); | ||
| 313 | -Result := StrPas (WinDir); | ||
| 314 | -end; | ||
| 315 | - | ||
| 316 | -procedure chksis; | ||
| 317 | -var | ||
| 318 | - v_download_CACIC2 : boolean; | ||
| 319 | - v_home_drive, v_ip_serv_cacic, v_cacic_dir, v_rem_cacic_v0x, | ||
| 320 | - v_var_inst_cac, v_te_serv_updates, v_nu_porta_serv_updates, v_nm_usuario_login_serv_updates, | ||
| 321 | - v_te_senha_login_serv_updates, v_te_path_serv_updates,strDataCACIC2 : String; | ||
| 322 | - BatchFile, Request_Config : TStringList; | ||
| 323 | - Response_Config : TStringStream; | ||
| 324 | - IdHTTP1: TIdHTTP; | ||
| 325 | -begin | ||
| 326 | - v_download_CACIC2 := false; | ||
| 327 | - v_home_drive := MidStr(HomeDrive,1,3); //x:\ | ||
| 328 | - v_ip_serv_cacic := GetValorChaveRegIni('Cacic2', 'ip_serv_cacic', ExtractFilePath(Application.Exename) + '\chksis.ini'); | ||
| 329 | - v_cacic_dir := GetValorChaveRegIni('Cacic2', 'cacic_dir', ExtractFilePath(Application.Exename) + '\chksis.ini'); | ||
| 330 | - v_rem_cacic_v0x := GetValorChaveRegIni('Cacic2', 'rem_cacic_v0x', ExtractFilePath(Application.Exename) + '\chksis.ini'); | ||
| 331 | - Dir := v_home_drive + v_cacic_dir; | ||
| 332 | - | ||
| 333 | - // Caso o parâmetro rem_cacic_v0x seja "S/s" removo a chave/valor de execução do Cacic antigo | ||
| 334 | - if (LowerCase(v_rem_cacic_v0x)='s') then | ||
| 335 | - begin | ||
| 336 | - DelValorReg('HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\cacic'); | ||
| 337 | - end; | ||
| 338 | - | ||
| 339 | - // Verifico a existência do diretório configurado para o Cacic, normalmente CACIC | ||
| 340 | - if not DirectoryExists(Dir) then | ||
| 341 | - begin | ||
| 342 | - ForceDirectories(Dir); | ||
| 343 | - end; | ||
| 344 | - | ||
| 345 | - // Para eliminar versão 20014 e anteriores que provavelmente não fazem corretamente o AutoUpdate | ||
| 346 | - if not DirectoryExists(Dir+'\modulos') then | ||
| 347 | - begin | ||
| 348 | - DeleteFile(Dir + '\cacic2.exe'); | ||
| 349 | - ForceDirectories(Dir + '\modulos'); | ||
| 350 | - end; | ||
| 351 | - | ||
| 352 | - // Crio o SubDiretório TEMP, caso não exista | ||
| 353 | - if not DirectoryExists(Dir+'\temp') then | ||
| 354 | - begin | ||
| 355 | - ForceDirectories(Dir + '\temp'); | ||
| 356 | - end; | ||
| 357 | - | ||
| 358 | - // Exclusão do arquivo cacic2.exe para que seja baixado novamente, devido a problema com versão 2.0.0.23 | ||
| 359 | - // após alteração do método de leitura de arquivos INI. | ||
| 360 | - If (FileExists(Dir + '\cacic2.exe')) Then | ||
| 361 | - Begin | ||
| 362 | - if (StrToInt(StringReplace(GetVersionInfo(Dir + '\cacic2.exe'),'.','',[rfReplaceAll]))>20000) or | ||
| 363 | - (trim(GetVersionInfo(Dir + '\cacic2.exe'))='0.0.0.0') then | ||
| 364 | - Begin | ||
| 365 | - DeleteFile(Dir + '\cacic2.exe'); | ||
| 366 | - End; | ||
| 367 | - End; | ||
| 368 | - | ||
| 369 | - If (FileExists(Dir + '\modulos\ger_cols.exe')) Then | ||
| 370 | - Begin | ||
| 371 | - if (StrToInt(StringReplace(GetVersionInfo(Dir + '\modulos\ger_cols.exe'),'.','',[rfReplaceAll]))>20000) or | ||
| 372 | - (trim(GetVersionInfo(Dir + '\modulos\ger_cols.exe'))='0.0.0.0') then | ||
| 373 | - Begin | ||
| 374 | - DeleteFile(Dir + '\modulos\ger_cols.exe'); | ||
| 375 | - End; | ||
| 376 | - End; | ||
| 377 | - | ||
| 378 | - // Igualo as chaves ip_serv_cacic dos arquivos chksis.ini e cacic2.ini! | ||
| 379 | - SetValorChaveRegIni('Configs', 'EnderecoServidor', v_ip_serv_cacic, Dir + '\cacic2.ini'); | ||
| 380 | - | ||
| 381 | - // Verifico existência dos dois principais objetos | ||
| 382 | - If (not FileExists(Dir + '\cacic2.exe')) or (not FileExists(Dir + '\modulos\ger_cols.exe')) Then | ||
| 383 | - Begin | ||
| 384 | - // Busco as configurações para acesso ao ambiente FTP - Updates | ||
| 385 | - Request_Config := TStringList.Create; | ||
| 386 | - Request_Config.Values['in_chkcacic'] := 'chkcacic'; | ||
| 387 | - Response_Config := TStringStream.Create(''); | ||
| 388 | - | ||
| 389 | - Try | ||
| 390 | - IdHTTP1 := TIdHTTP.Create(IdHTTP1); | ||
| 391 | - IdHTTP1.Post('http://' + v_ip_serv_cacic + '/cacic2/ws/get_config.php', Request_Config, Response_Config); | ||
| 392 | - | ||
| 393 | - v_te_serv_updates := XML_RetornaValor('te_serv_updates' , Response_Config.DataString); | ||
| 394 | - v_nu_porta_serv_updates := XML_RetornaValor('nu_porta_serv_updates' , Response_Config.DataString); | ||
| 395 | - v_nm_usuario_login_serv_updates := XML_RetornaValor('nm_usuario_login_serv_updates', Response_Config.DataString); | ||
| 396 | - v_te_senha_login_serv_updates := XML_RetornaValor('te_senha_login_serv_updates' , Response_Config.DataString); | ||
| 397 | - v_te_path_serv_updates := XML_RetornaValor('te_path_serv_updates' , Response_Config.DataString); | ||
| 398 | - Except | ||
| 399 | - End; | ||
| 400 | - Request_Config.Free; | ||
| 401 | - Response_Config.Free; | ||
| 402 | - | ||
| 403 | - // Tento detectar o Agente Principal e faço FTP caso não exista | ||
| 404 | - If not FileExists(Dir + '\cacic2.exe') Then | ||
| 405 | - begin | ||
| 406 | - FTP(v_te_serv_updates, | ||
| 407 | - v_nu_porta_serv_updates, | ||
| 408 | - v_nm_usuario_login_serv_updates, | ||
| 409 | - v_te_senha_login_serv_updates, | ||
| 410 | - v_te_path_serv_updates, | ||
| 411 | - 'cacic2.exe', | ||
| 412 | - Dir); | ||
| 413 | - v_download_CACIC2 := true; | ||
| 414 | - end; | ||
| 415 | - | ||
| 416 | - // Tento detectar o Gerente de Coletas e faço FTP caso não exista | ||
| 417 | - If (not FileExists(Dir + '\modulos\ger_cols.exe')) Then | ||
| 418 | - begin | ||
| 419 | - FTP(v_te_serv_updates, | ||
| 420 | - v_nu_porta_serv_updates, | ||
| 421 | - v_nm_usuario_login_serv_updates, | ||
| 422 | - v_te_senha_login_serv_updates, | ||
| 423 | - v_te_path_serv_updates, | ||
| 424 | - 'ger_cols.exe', | ||
| 425 | - Dir + '\modulos'); | ||
| 426 | - end; | ||
| 427 | - End; | ||
| 428 | - | ||
| 429 | - // Crio a chave/valor cacic2 para autoexecução do Cacic, caso não exista esta chave/valor | ||
| 430 | - // Crio a chave/valor chksis para autoexecução do Cacic, caso não exista esta chave/valor | ||
| 431 | - SetValorChaveRegEdit('HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\CheckSystemRoutine', HomeDrive + '\chksis.exe'); | ||
| 432 | - SetValorChaveRegEdit('HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\cacic2', Dir + '\cacic2.exe'); | ||
| 433 | - | ||
| 434 | - // Caso o Cacic tenha sido baixado executo-o com parâmetro de configuração de servidor | ||
| 435 | - if (v_download_CACIC2) then | ||
| 436 | - Begin | ||
| 437 | - WinExec(PChar(Dir + '\cacic2.exe /ip_serv_cacic=' + v_ip_serv_cacic), SW_HIDE); | ||
| 438 | - End | ||
| 439 | -end; | ||
| 440 | -function FindWindowByTitle(WindowTitle: string): Hwnd; | ||
| 441 | -var | ||
| 442 | - NextHandle: Hwnd; | ||
| 443 | - NextTitle: array[0..260] of char; | ||
| 444 | -begin | ||
| 445 | - // Get the first window | ||
| 446 | - NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST); | ||
| 447 | - while NextHandle > 0 do | ||
| 448 | - begin | ||
| 449 | - // retrieve its text | ||
| 450 | - GetWindowText(NextHandle, NextTitle, 255); | ||
| 451 | - | ||
| 452 | - if (trim(StrPas(NextTitle))<> '') and (Pos(strlower(pchar(WindowTitle)), strlower(PChar(StrPas(NextTitle)))) <> 0) then | ||
| 453 | - begin | ||
| 454 | - Result := NextHandle; | ||
| 455 | - Exit; | ||
| 456 | - end | ||
| 457 | - else | ||
| 458 | - // Get the next window | ||
| 459 | - NextHandle := GetWindow(NextHandle, GW_HWNDNEXT); | ||
| 460 | - end; | ||
| 461 | - Result := 0; | ||
| 462 | -end; | ||
| 463 | - | ||
| 464 | -procedure TForm1.FormCreate(Sender: TObject); | ||
| 465 | -begin | ||
| 466 | - Application.ShowMainForm:=false; | ||
| 467 | - if (FindWindowByTitle('chkcacic') = 0) then | ||
| 468 | - Begin | ||
| 469 | - chksis; | ||
| 470 | - End; | ||
| 471 | - Application.Terminate; | ||
| 472 | -end; | ||
| 473 | - | ||
| 474 | -end. |
col_comp/col_comp.dpr
| @@ -37,6 +37,8 @@ var p_path_cacic : string; | @@ -37,6 +37,8 @@ var p_path_cacic : string; | ||
| 37 | var v_tstrCipherOpened, | 37 | var v_tstrCipherOpened, |
| 38 | v_tstrCipherOpened1 : TStrings; | 38 | v_tstrCipherOpened1 : TStrings; |
| 39 | 39 | ||
| 40 | +var g_oCacic : TCACIC; | ||
| 41 | + | ||
| 40 | // Some constants that are dependant on the cipher being used | 42 | // Some constants that are dependant on the cipher being used |
| 41 | // Assuming MCRYPT_RIJNDAEL_128 (i.e., 128bit blocksize, 256bit keysize) | 43 | // Assuming MCRYPT_RIJNDAEL_128 (i.e., 128bit blocksize, 256bit keysize) |
| 42 | const KeySize = 32; // 32 bytes = 256 bits | 44 | const KeySize = 32; // 32 bytes = 256 bits |
| @@ -91,7 +93,6 @@ begin | @@ -91,7 +93,6 @@ begin | ||
| 91 | Append(HistoricoLog); | 93 | Append(HistoricoLog); |
| 92 | Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now)+ '[Coletor COMP] '+strMsg); {Grava a string Texto no arquivo texto} | 94 | Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now)+ '[Coletor COMP] '+strMsg); {Grava a string Texto no arquivo texto} |
| 93 | CloseFile(HistoricoLog); {Fecha o arquivo texto} | 95 | CloseFile(HistoricoLog); {Fecha o arquivo texto} |
| 94 | -// FileSetAttr (ExtractFilePath(Application.Exename) + '\cacic2.log',6); // Muda o atributo para arquivo de SISTEMA e OCULTO | ||
| 95 | 96 | ||
| 96 | except | 97 | except |
| 97 | log_diario('Erro na gravação do log!'); | 98 | log_diario('Erro na gravação do log!'); |
| @@ -196,77 +197,14 @@ begin | @@ -196,77 +197,14 @@ begin | ||
| 196 | Rewrite (v_DatFile); | 197 | Rewrite (v_DatFile); |
| 197 | Append(v_DatFile); | 198 | Append(v_DatFile); |
| 198 | 199 | ||
| 199 | - //v_Cipher := TDCP_rijndael.Create(nil); | ||
| 200 | - //v_Cipher.InitStr(v_CipherKey,TDCP_md5); | ||
| 201 | v_strCipherOpenImploded := Implode(p_tstrCipherOpened,'=CacicIsFree='); | 200 | v_strCipherOpenImploded := Implode(p_tstrCipherOpened,'=CacicIsFree='); |
| 202 | - //v_strCipherClosed := v_Cipher.EncryptString(v_strCipherOpenImploded); | ||
| 203 | v_strCipherClosed := EnCrypt(v_strCipherOpenImploded); | 201 | v_strCipherClosed := EnCrypt(v_strCipherOpenImploded); |
| 204 | - //v_Cipher.Burn; | ||
| 205 | - //v_Cipher.Free; | ||
| 206 | Writeln(v_DatFile,v_strCipherClosed); {Grava a string Texto no arquivo texto} | 202 | Writeln(v_DatFile,v_strCipherClosed); {Grava a string Texto no arquivo texto} |
| 207 | CloseFile(v_DatFile); | 203 | CloseFile(v_DatFile); |
| 208 | except | 204 | except |
| 209 | end; | 205 | end; |
| 210 | end; | 206 | end; |
| 211 | 207 | ||
| 212 | -function GetWinVer: Integer; | ||
| 213 | -const | ||
| 214 | - { operating system (OS)constants } | ||
| 215 | - cOsUnknown = 0; | ||
| 216 | - cOsWin95 = 1; | ||
| 217 | - cOsWin95OSR2 = 2; // Não implementado. | ||
| 218 | - cOsWin98 = 3; | ||
| 219 | - cOsWin98SE = 4; | ||
| 220 | - cOsWinME = 5; | ||
| 221 | - cOsWinNT = 6; | ||
| 222 | - cOsWin2000 = 7; | ||
| 223 | - cOsXP = 8; | ||
| 224 | -var | ||
| 225 | - osVerInfo: TOSVersionInfo; | ||
| 226 | - majorVer, minorVer: Integer; | ||
| 227 | -begin | ||
| 228 | - Result := cOsUnknown; | ||
| 229 | - { set operating system type flag } | ||
| 230 | - osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); | ||
| 231 | - if GetVersionEx(osVerInfo) then | ||
| 232 | - begin | ||
| 233 | - majorVer := osVerInfo.dwMajorVersion; | ||
| 234 | - minorVer := osVerInfo.dwMinorVersion; | ||
| 235 | - case osVerInfo.dwPlatformId of | ||
| 236 | - VER_PLATFORM_WIN32_NT: { Windows NT/2000 } | ||
| 237 | - begin | ||
| 238 | - if majorVer <= 4 then | ||
| 239 | - Result := cOsWinNT | ||
| 240 | - else if (majorVer = 5) and (minorVer = 0) then | ||
| 241 | - Result := cOsWin2000 | ||
| 242 | - else if (majorVer = 5) and (minorVer = 1) then | ||
| 243 | - Result := cOsXP | ||
| 244 | - else | ||
| 245 | - Result := cOsUnknown; | ||
| 246 | - end; | ||
| 247 | - VER_PLATFORM_WIN32_WINDOWS: { Windows 9x/ME } | ||
| 248 | - begin | ||
| 249 | - if (majorVer = 4) and (minorVer = 0) then | ||
| 250 | - Result := cOsWin95 | ||
| 251 | - else if (majorVer = 4) and (minorVer = 10) then | ||
| 252 | - begin | ||
| 253 | - if osVerInfo.szCSDVersion[1] = 'A' then | ||
| 254 | - Result := cOsWin98SE | ||
| 255 | - else | ||
| 256 | - Result := cOsWin98; | ||
| 257 | - end | ||
| 258 | - else if (majorVer = 4) and (minorVer = 90) then | ||
| 259 | - Result := cOsWinME | ||
| 260 | - else | ||
| 261 | - Result := cOsUnknown; | ||
| 262 | - end; | ||
| 263 | - else | ||
| 264 | - Result := cOsUnknown; | ||
| 265 | - end; | ||
| 266 | - end | ||
| 267 | - else | ||
| 268 | - Result := cOsUnknown; | ||
| 269 | -end; | ||
| 270 | Function Explode(Texto, Separador : String) : TStrings; | 208 | Function Explode(Texto, Separador : String) : TStrings; |
| 271 | var | 209 | var |
| 272 | strItem : String; | 210 | strItem : String; |
| @@ -324,7 +262,7 @@ begin | @@ -324,7 +262,7 @@ begin | ||
| 324 | if (trim(v_strCipherOpened)<>'') then | 262 | if (trim(v_strCipherOpened)<>'') then |
| 325 | Result := explode(v_strCipherOpened,'=CacicIsFree=') | 263 | Result := explode(v_strCipherOpened,'=CacicIsFree=') |
| 326 | else | 264 | else |
| 327 | - Result := explode('Configs.ID_SO=CacicIsFree='+inttostr(GetWinVer)+'=CacicIsFree=Configs.Endereco_WS=CacicIsFree=/cacic2/ws/','=CacicIsFree='); | 265 | + Result := explode('Configs.ID_SO=CacicIsFree='+ g_oCacic.getWindowsStrId() +'=CacicIsFree=Configs.Endereco_WS=CacicIsFree=/cacic2/ws/','=CacicIsFree='); |
| 328 | 266 | ||
| 329 | 267 | ||
| 330 | if Result.Count mod 2 <> 0 then | 268 | if Result.Count mod 2 <> 0 then |
| @@ -333,7 +271,6 @@ end; | @@ -333,7 +271,6 @@ end; | ||
| 333 | 271 | ||
| 334 | Procedure SetValorDatMemoria(p_Chave : string; p_Valor : String; p_tstrCipherOpened : TStrings); | 272 | Procedure SetValorDatMemoria(p_Chave : string; p_Valor : String; p_tstrCipherOpened : TStrings); |
| 335 | begin | 273 | begin |
| 336 | -//log_diario('Gravando: '+p_Chave+' Valor: '+p_Valor); | ||
| 337 | // Exemplo: p_Chave => Configs.nu_ip_servidor : p_Valor => 10.71.0.120 | 274 | // Exemplo: p_Chave => Configs.nu_ip_servidor : p_Valor => 10.71.0.120 |
| 338 | if (p_tstrCipherOpened.IndexOf(p_Chave)<>-1) then | 275 | if (p_tstrCipherOpened.IndexOf(p_Chave)<>-1) then |
| 339 | p_tstrCipherOpened[v_tstrCipherOpened.IndexOf(p_Chave)+1] := p_Valor | 276 | p_tstrCipherOpened[v_tstrCipherOpened.IndexOf(p_Chave)+1] := p_Valor |
| @@ -351,7 +288,6 @@ begin | @@ -351,7 +288,6 @@ begin | ||
| 351 | Result := v_tstrCipherOpened[v_tstrCipherOpened.IndexOf(p_Chave)+1] | 288 | Result := v_tstrCipherOpened[v_tstrCipherOpened.IndexOf(p_Chave)+1] |
| 352 | else | 289 | else |
| 353 | Result := ''; | 290 | Result := ''; |
| 354 | -//log_diario('Buscando: '+p_Chave+' Resultado: '+Result); | ||
| 355 | end; | 291 | end; |
| 356 | 292 | ||
| 357 | 293 | ||
| @@ -420,18 +356,17 @@ begin | @@ -420,18 +356,17 @@ begin | ||
| 420 | end; | 356 | end; |
| 421 | end; | 357 | end; |
| 422 | 358 | ||
| 423 | - | ||
| 424 | - | ||
| 425 | - | ||
| 426 | procedure Executa_Col_comp; | 359 | procedure Executa_Col_comp; |
| 427 | -function RetornaValorShareNT(ValorReg : String; LimiteEsq : String; LimiteDir : String) : String; | ||
| 428 | -var intAux, intAux2 : Integer; | ||
| 429 | -Begin | ||
| 430 | - intAux := Pos(LimiteEsq, ValorReg) + Length(LimiteEsq); | ||
| 431 | - if (LimiteDir = 'Fim') Then intAux2 := Length(ValorReg) - 1 | ||
| 432 | - Else intAux2 := Pos(LimiteDir, ValorReg) - intAux - 1; | ||
| 433 | - result := Trim(Copy(ValorReg, intAux, intAux2)); | ||
| 434 | -end; | 360 | + |
| 361 | + function RetornaValorShareNT(ValorReg : String; LimiteEsq : String; LimiteDir : String) : String; | ||
| 362 | + var intAux, intAux2 : Integer; | ||
| 363 | + Begin | ||
| 364 | + intAux := Pos(LimiteEsq, ValorReg) + Length(LimiteEsq); | ||
| 365 | + if (LimiteDir = 'Fim') Then intAux2 := Length(ValorReg) - 1 | ||
| 366 | + Else intAux2 := Pos(LimiteDir, ValorReg) - intAux - 1; | ||
| 367 | + result := Trim(Copy(ValorReg, intAux, intAux2)); | ||
| 368 | + end; | ||
| 369 | + | ||
| 435 | var Reg_RCC : TRegistry; | 370 | var Reg_RCC : TRegistry; |
| 436 | ChaveRegistro, ValorChaveRegistro, nm_compartilhamento, nm_dir_compart, | 371 | ChaveRegistro, ValorChaveRegistro, nm_compartilhamento, nm_dir_compart, |
| 437 | in_senha_escrita, in_senha_leitura, te_comentario, strTripaDados, strAux, | 372 | in_senha_escrita, in_senha_leitura, te_comentario, strTripaDados, strAux, |
| @@ -453,16 +388,6 @@ Begin | @@ -453,16 +388,6 @@ Begin | ||
| 453 | Reg_RCC.LazyWrite := False; | 388 | Reg_RCC.LazyWrite := False; |
| 454 | Lista_RCC := TStringList.Create; | 389 | Lista_RCC := TStringList.Create; |
| 455 | Reg_RCC.Rootkey := HKEY_LOCAL_MACHINE; | 390 | Reg_RCC.Rootkey := HKEY_LOCAL_MACHINE; |
| 456 | - { | ||
| 457 | - strXML := '<?xml version="1.0" encoding="ISO-8859-1"?>' + | ||
| 458 | - '<comparts>' + | ||
| 459 | - '<te_node_address>' + GetValorChaveRegIni('TcpIp' ,'TE_NODE_ADDRESS' ,p_path_cacic_ini) + '</te_node_address>' + | ||
| 460 | - '<te_nome_computador>' + GetValorChaveRegIni('TcpIp' ,'TE_NOME_COMPUTADOR',p_path_cacic_ini) + '</te_nome_computador>' + | ||
| 461 | - '<te_workgroup>' + GetValorChaveRegIni('TcpIp' ,'TE_WORKGROUP' ,p_path_cacic_ini) + '</te_workgroup>' + | ||
| 462 | - '<id_so>' + GetValorChaveRegIni('Configs','ID_SO' ,p_path_cacic_ini) + '</id_so>'; | ||
| 463 | - } | ||
| 464 | - | ||
| 465 | - //strXML := '<?xml version="1.0" encoding="ISO-8859-1"?><comparts>'; | ||
| 466 | strTripaDados := ''; | 391 | strTripaDados := ''; |
| 467 | 392 | ||
| 468 | if Win32Platform = VER_PLATFORM_WIN32_NT then | 393 | if Win32Platform = VER_PLATFORM_WIN32_NT then |
| @@ -573,11 +498,10 @@ const | @@ -573,11 +498,10 @@ const | ||
| 573 | 498 | ||
| 574 | var | 499 | var |
| 575 | hwind:HWND; | 500 | hwind:HWND; |
| 576 | - oCacic : TCACIC; | ||
| 577 | 501 | ||
| 578 | begin | 502 | begin |
| 579 | - oCacic := TCACIC.Create(); | ||
| 580 | - if( not oCacic.isAppRunning( CACIC_APP_NAME ) ) then | 503 | + g_oCacic := TCACIC.Create(); |
| 504 | + if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then | ||
| 581 | if (ParamCount>0) then | 505 | if (ParamCount>0) then |
| 582 | Begin | 506 | Begin |
| 583 | For intAux := 1 to ParamCount do | 507 | For intAux := 1 to ParamCount do |
| @@ -614,5 +538,5 @@ begin | @@ -614,5 +538,5 @@ begin | ||
| 614 | Halt(0); | 538 | Halt(0); |
| 615 | End; | 539 | End; |
| 616 | End; | 540 | End; |
| 617 | - oCacic.Free(); | 541 | + g_oCacic.Free(); |
| 618 | end. | 542 | end. |
col_hard/col_hard.dpr
| @@ -51,6 +51,8 @@ var p_path_cacic, v_mensagem : string; | @@ -51,6 +51,8 @@ var p_path_cacic, v_mensagem : string; | ||
| 51 | var v_tstrCipherOpened, | 51 | var v_tstrCipherOpened, |
| 52 | v_tstrCipherOpened1 : TStrings; | 52 | v_tstrCipherOpened1 : TStrings; |
| 53 | 53 | ||
| 54 | +var g_oCacic : TCACIC; | ||
| 55 | + | ||
| 54 | // Some constants that are dependant on the cipher being used | 56 | // Some constants that are dependant on the cipher being used |
| 55 | // Assuming MCRYPT_RIJNDAEL_128 (i.e., 128bit blocksize, 256bit keysize) | 57 | // Assuming MCRYPT_RIJNDAEL_128 (i.e., 128bit blocksize, 256bit keysize) |
| 56 | const KeySize = 32; // 32 bytes = 256 bits | 58 | const KeySize = 32; // 32 bytes = 256 bits |
| @@ -129,7 +131,6 @@ begin | @@ -129,7 +131,6 @@ begin | ||
| 129 | Append(HistoricoLog); | 131 | Append(HistoricoLog); |
| 130 | Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now)+ '[Coletor HARD] '+strMsg); {Grava a string Texto no arquivo texto} | 132 | Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now)+ '[Coletor HARD] '+strMsg); {Grava a string Texto no arquivo texto} |
| 131 | CloseFile(HistoricoLog); {Fecha o arquivo texto} | 133 | CloseFile(HistoricoLog); {Fecha o arquivo texto} |
| 132 | -// FileSetAttr (ExtractFilePath(Application.Exename) + '\cacic2.log',6); // Muda o atributo para arquivo de SISTEMA e OCULTO | ||
| 133 | 134 | ||
| 134 | except | 135 | except |
| 135 | log_diario('Erro na gravação do log!'); | 136 | log_diario('Erro na gravação do log!'); |
| @@ -220,13 +221,8 @@ begin | @@ -220,13 +221,8 @@ begin | ||
| 220 | Rewrite (v_DatFile); | 221 | Rewrite (v_DatFile); |
| 221 | Append(v_DatFile); | 222 | Append(v_DatFile); |
| 222 | 223 | ||
| 223 | - //v_Cipher := TDCP_rijndael.Create(nil); | ||
| 224 | - //v_Cipher.InitStr(v_CipherKey,TDCP_md5); | ||
| 225 | v_strCipherOpenImploded := Implode(p_tstrCipherOpened,'=CacicIsFree='); | 224 | v_strCipherOpenImploded := Implode(p_tstrCipherOpened,'=CacicIsFree='); |
| 226 | v_strCipherClosed := EnCrypt(v_strCipherOpenImploded); | 225 | v_strCipherClosed := EnCrypt(v_strCipherOpenImploded); |
| 227 | - //v_strCipherClosed := v_Cipher.EncryptString(v_strCipherOpenImploded); | ||
| 228 | - //v_Cipher.Burn; | ||
| 229 | - //v_Cipher.Free; | ||
| 230 | 226 | ||
| 231 | Writeln(v_DatFile,v_strCipherClosed); {Grava a string Texto no arquivo texto} | 227 | Writeln(v_DatFile,v_strCipherClosed); {Grava a string Texto no arquivo texto} |
| 232 | 228 | ||
| @@ -234,64 +230,7 @@ begin | @@ -234,64 +230,7 @@ begin | ||
| 234 | except | 230 | except |
| 235 | end; | 231 | end; |
| 236 | end; | 232 | end; |
| 237 | -function GetWinVer: Integer; | ||
| 238 | -const | ||
| 239 | - { operating system (OS)constants } | ||
| 240 | - cOsUnknown = 0; | ||
| 241 | - cOsWin95 = 1; | ||
| 242 | - cOsWin95OSR2 = 2; // Não implementado. | ||
| 243 | - cOsWin98 = 3; | ||
| 244 | - cOsWin98SE = 4; | ||
| 245 | - cOsWinME = 5; | ||
| 246 | - cOsWinNT = 6; | ||
| 247 | - cOsWin2000 = 7; | ||
| 248 | - cOsXP = 8; | ||
| 249 | -var | ||
| 250 | - osVerInfo: TOSVersionInfo; | ||
| 251 | - majorVer, minorVer: Integer; | ||
| 252 | -begin | ||
| 253 | - Result := cOsUnknown; | ||
| 254 | - { set operating system type flag } | ||
| 255 | - osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); | ||
| 256 | - if GetVersionEx(osVerInfo) then | ||
| 257 | - begin | ||
| 258 | - majorVer := osVerInfo.dwMajorVersion; | ||
| 259 | - minorVer := osVerInfo.dwMinorVersion; | ||
| 260 | - case osVerInfo.dwPlatformId of | ||
| 261 | - VER_PLATFORM_WIN32_NT: { Windows NT/2000 } | ||
| 262 | - begin | ||
| 263 | - if majorVer <= 4 then | ||
| 264 | - Result := cOsWinNT | ||
| 265 | - else if (majorVer = 5) and (minorVer = 0) then | ||
| 266 | - Result := cOsWin2000 | ||
| 267 | - else if (majorVer = 5) and (minorVer = 1) then | ||
| 268 | - Result := cOsXP | ||
| 269 | - else | ||
| 270 | - Result := cOsUnknown; | ||
| 271 | - end; | ||
| 272 | - VER_PLATFORM_WIN32_WINDOWS: { Windows 9x/ME } | ||
| 273 | - begin | ||
| 274 | - if (majorVer = 4) and (minorVer = 0) then | ||
| 275 | - Result := cOsWin95 | ||
| 276 | - else if (majorVer = 4) and (minorVer = 10) then | ||
| 277 | - begin | ||
| 278 | - if osVerInfo.szCSDVersion[1] = 'A' then | ||
| 279 | - Result := cOsWin98SE | ||
| 280 | - else | ||
| 281 | - Result := cOsWin98; | ||
| 282 | - end | ||
| 283 | - else if (majorVer = 4) and (minorVer = 90) then | ||
| 284 | - Result := cOsWinME | ||
| 285 | - else | ||
| 286 | - Result := cOsUnknown; | ||
| 287 | - end; | ||
| 288 | - else | ||
| 289 | - Result := cOsUnknown; | ||
| 290 | - end; | ||
| 291 | - end | ||
| 292 | - else | ||
| 293 | - Result := cOsUnknown; | ||
| 294 | -end; | 233 | + |
| 295 | Function Explode(Texto, Separador : String) : TStrings; | 234 | Function Explode(Texto, Separador : String) : TStrings; |
| 296 | var | 235 | var |
| 297 | strItem : String; | 236 | strItem : String; |
| @@ -349,7 +288,7 @@ begin | @@ -349,7 +288,7 @@ begin | ||
| 349 | if (trim(v_strCipherOpened)<>'') then | 288 | if (trim(v_strCipherOpened)<>'') then |
| 350 | Result := explode(v_strCipherOpened,'=CacicIsFree=') | 289 | Result := explode(v_strCipherOpened,'=CacicIsFree=') |
| 351 | else | 290 | else |
| 352 | - Result := explode('Configs.ID_SO=CacicIsFree='+inttostr(GetWinVer)+'=CacicIsFree=Configs.Endereco_WS=CacicIsFree=/cacic2/ws/','=CacicIsFree='); | 291 | + Result := explode('Configs.ID_SO=CacicIsFree='+ g_oCacic.getWindowsStrId() +'=CacicIsFree=Configs.Endereco_WS=CacicIsFree=/cacic2/ws/','=CacicIsFree='); |
| 353 | 292 | ||
| 354 | if Result.Count mod 2 <> 0 then | 293 | if Result.Count mod 2 <> 0 then |
| 355 | Result.Add(''); | 294 | Result.Add(''); |
| @@ -791,9 +730,9 @@ begin | @@ -791,9 +730,9 @@ begin | ||
| 791 | Try | 730 | Try |
| 792 | for i:=0 to v_CPU.CPUCount-1 do begin | 731 | for i:=0 to v_CPU.CPUCount-1 do begin |
| 793 | v_te_cpu_serial := v_CPU.SerialNumber; | 732 | v_te_cpu_serial := v_CPU.SerialNumber; |
| 794 | - v_te_cpu_desc := v_CPU.CPUName; | 733 | + v_te_cpu_desc := v_CPU.MarketingName; |
| 795 | if(v_te_cpu_desc = '') then | 734 | if(v_te_cpu_desc = '') then |
| 796 | - v_te_cpu_desc := v_CPU.MarketingName; | 735 | + v_te_cpu_desc := v_CPU.CPUName; |
| 797 | 736 | ||
| 798 | v_te_cpu_fabricante := cVendorNames[v_CPU.Vendor].Prefix; | 737 | v_te_cpu_fabricante := cVendorNames[v_CPU.Vendor].Prefix; |
| 799 | 738 | ||
| @@ -1158,12 +1097,11 @@ const | @@ -1158,12 +1097,11 @@ const | ||
| 1158 | 1097 | ||
| 1159 | var tstrTripa1 : TStrings; | 1098 | var tstrTripa1 : TStrings; |
| 1160 | intAux : integer; | 1099 | intAux : integer; |
| 1161 | - oCacic : TCACIC; | ||
| 1162 | 1100 | ||
| 1163 | begin | 1101 | begin |
| 1164 | - oCacic := TCACIC.Create(); | 1102 | + g_oCacic := TCACIC.Create(); |
| 1165 | 1103 | ||
| 1166 | - if( not oCacic.isAppRunning( CACIC_APP_NAME ) ) then | 1104 | + if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then |
| 1167 | if (ParamCount>0) then | 1105 | if (ParamCount>0) then |
| 1168 | Begin | 1106 | Begin |
| 1169 | For intAux := 1 to ParamCount do | 1107 | For intAux := 1 to ParamCount do |
| @@ -1211,6 +1149,6 @@ begin | @@ -1211,6 +1149,6 @@ begin | ||
| 1211 | End; | 1149 | End; |
| 1212 | End; | 1150 | End; |
| 1213 | 1151 | ||
| 1214 | - oCacic.Free(); | 1152 | + g_oCacic.Free(); |
| 1215 | 1153 | ||
| 1216 | end. | 1154 | end. |
col_moni/col_moni.dpr
| @@ -42,6 +42,8 @@ var v_Debugs : boolean; | @@ -42,6 +42,8 @@ var v_Debugs : boolean; | ||
| 42 | var v_tstrCipherOpened, | 42 | var v_tstrCipherOpened, |
| 43 | v_tstrCipherOpened1 : TStrings; | 43 | v_tstrCipherOpened1 : TStrings; |
| 44 | 44 | ||
| 45 | +var g_oCacic : TCACIC; | ||
| 46 | + | ||
| 45 | // Some constants that are dependant on the cipher being used | 47 | // Some constants that are dependant on the cipher being used |
| 46 | // Assuming MCRYPT_RIJNDAEL_128 (i.e., 128bit blocksize, 256bit keysize) | 48 | // Assuming MCRYPT_RIJNDAEL_128 (i.e., 128bit blocksize, 256bit keysize) |
| 47 | const KeySize = 32; // 32 bytes = 256 bits | 49 | const KeySize = 32; // 32 bytes = 256 bits |
| @@ -342,64 +344,7 @@ begin | @@ -342,64 +344,7 @@ begin | ||
| 342 | except | 344 | except |
| 343 | end; | 345 | end; |
| 344 | end; | 346 | end; |
| 345 | -function GetWinVer: Integer; | ||
| 346 | -const | ||
| 347 | - { operating system (OS)constants } | ||
| 348 | - cOsUnknown = 0; | ||
| 349 | - cOsWin95 = 1; | ||
| 350 | - cOsWin95OSR2 = 2; // Não implementado. | ||
| 351 | - cOsWin98 = 3; | ||
| 352 | - cOsWin98SE = 4; | ||
| 353 | - cOsWinME = 5; | ||
| 354 | - cOsWinNT = 6; | ||
| 355 | - cOsWin2000 = 7; | ||
| 356 | - cOsXP = 8; | ||
| 357 | -var | ||
| 358 | - osVerInfo: TOSVersionInfo; | ||
| 359 | - majorVer, minorVer: Integer; | ||
| 360 | -begin | ||
| 361 | - Result := cOsUnknown; | ||
| 362 | - { set operating system type flag } | ||
| 363 | - osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); | ||
| 364 | - if GetVersionEx(osVerInfo) then | ||
| 365 | - begin | ||
| 366 | - majorVer := osVerInfo.dwMajorVersion; | ||
| 367 | - minorVer := osVerInfo.dwMinorVersion; | ||
| 368 | - case osVerInfo.dwPlatformId of | ||
| 369 | - VER_PLATFORM_WIN32_NT: { Windows NT/2000 } | ||
| 370 | - begin | ||
| 371 | - if majorVer <= 4 then | ||
| 372 | - Result := cOsWinNT | ||
| 373 | - else if (majorVer = 5) and (minorVer = 0) then | ||
| 374 | - Result := cOsWin2000 | ||
| 375 | - else if (majorVer = 5) and (minorVer = 1) then | ||
| 376 | - Result := cOsXP | ||
| 377 | - else | ||
| 378 | - Result := cOsUnknown; | ||
| 379 | - end; | ||
| 380 | - VER_PLATFORM_WIN32_WINDOWS: { Windows 9x/ME } | ||
| 381 | - begin | ||
| 382 | - if (majorVer = 4) and (minorVer = 0) then | ||
| 383 | - Result := cOsWin95 | ||
| 384 | - else if (majorVer = 4) and (minorVer = 10) then | ||
| 385 | - begin | ||
| 386 | - if osVerInfo.szCSDVersion[1] = 'A' then | ||
| 387 | - Result := cOsWin98SE | ||
| 388 | - else | ||
| 389 | - Result := cOsWin98; | ||
| 390 | - end | ||
| 391 | - else if (majorVer = 4) and (minorVer = 90) then | ||
| 392 | - Result := cOsWinME | ||
| 393 | - else | ||
| 394 | - Result := cOsUnknown; | ||
| 395 | - end; | ||
| 396 | - else | ||
| 397 | - Result := cOsUnknown; | ||
| 398 | - end; | ||
| 399 | - end | ||
| 400 | - else | ||
| 401 | - Result := cOsUnknown; | ||
| 402 | -end; | 347 | + |
| 403 | Function Explode(Texto, Separador : String) : TStrings; | 348 | Function Explode(Texto, Separador : String) : TStrings; |
| 404 | var | 349 | var |
| 405 | strItem : String; | 350 | strItem : String; |
| @@ -457,7 +402,7 @@ begin | @@ -457,7 +402,7 @@ begin | ||
| 457 | if (trim(v_strCipherOpened)<>'') then | 402 | if (trim(v_strCipherOpened)<>'') then |
| 458 | Result := explode(v_strCipherOpened,'=CacicIsFree=') | 403 | Result := explode(v_strCipherOpened,'=CacicIsFree=') |
| 459 | else | 404 | else |
| 460 | - Result := explode('Configs.ID_SO=CacicIsFree='+inttostr(GetWinVer)+'=CacicIsFree=Configs.Endereco_WS=CacicIsFree=/cacic2/ws/','=CacicIsFree='); | 405 | + Result := explode('Configs.ID_SO=CacicIsFree='+ g_oCacic.getWindowsStrId() +'=CacicIsFree=Configs.Endereco_WS=CacicIsFree=/cacic2/ws/','=CacicIsFree='); |
| 461 | 406 | ||
| 462 | if Result.Count mod 2 <> 0 then | 407 | if Result.Count mod 2 <> 0 then |
| 463 | Result.Add(''); | 408 | Result.Add(''); |
| @@ -1081,12 +1026,11 @@ const | @@ -1081,12 +1026,11 @@ const | ||
| 1081 | 1026 | ||
| 1082 | var tstrTripa1 : TStrings; | 1027 | var tstrTripa1 : TStrings; |
| 1083 | intAux : integer; | 1028 | intAux : integer; |
| 1084 | - oCacic : TCACIC; | ||
| 1085 | 1029 | ||
| 1086 | begin | 1030 | begin |
| 1087 | - oCacic := TCACIC.Create(); | 1031 | + g_oCacic := TCACIC.Create(); |
| 1088 | 1032 | ||
| 1089 | - if( not oCacic.isAppRunning( CACIC_APP_NAME ) ) then | 1033 | + if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then |
| 1090 | if (ParamCount>0) then | 1034 | if (ParamCount>0) then |
| 1091 | Begin | 1035 | Begin |
| 1092 | For intAux := 1 to ParamCount do | 1036 | For intAux := 1 to ParamCount do |
| @@ -1134,6 +1078,6 @@ begin | @@ -1134,6 +1078,6 @@ begin | ||
| 1134 | End; | 1078 | End; |
| 1135 | End; | 1079 | End; |
| 1136 | 1080 | ||
| 1137 | - oCacic.Free(); | 1081 | + g_oCacic.Free(); |
| 1138 | 1082 | ||
| 1139 | end. | 1083 | end. |
col_moni/coleta_monitorado.pas
| @@ -1,226 +0,0 @@ | @@ -1,226 +0,0 @@ | ||
| 1 | -unit coleta_monitorado; | ||
| 2 | - | ||
| 3 | -interface | ||
| 4 | - | ||
| 5 | -uses Windows, Registry, SysUtils, Classes, dialogs; | ||
| 6 | - | ||
| 7 | -procedure RealizarColetaMonitorado; | ||
| 8 | - | ||
| 9 | -implementation | ||
| 10 | - | ||
| 11 | - | ||
| 12 | -Uses main, comunicacao, utils, registro, Math; | ||
| 13 | - | ||
| 14 | -procedure RealizarColetaMonitorado; | ||
| 15 | -var Request_RCH : TStringlist; | ||
| 16 | - tstrTripa2, tstrTripa3, v_array1, v_array2, v_array3, v_array4 : TStrings; | ||
| 17 | - strAux, strAux1, strAux3, strAux4, strTripa, ValorChavePerfis, ValorChaveColetado : String; | ||
| 18 | - intAux4, v1, v3, v_achei : Integer; | ||
| 19 | -begin | ||
| 20 | - // Verifica se deverá ser realizada a coleta de informações de aplicativos monitorados neste | ||
| 21 | - // computador, perguntando ao agente gerente. | ||
| 22 | - if (CS_COLETA_MONITORADO) Then | ||
| 23 | - Begin | ||
| 24 | - main.frmMain.Log_Historico('* Coletando informações de aplicativos monitorados.'); | ||
| 25 | - intAux4 := 1; | ||
| 26 | - strAux3 := ''; | ||
| 27 | - ValorChavePerfis := '*'; | ||
| 28 | - while ValorChavePerfis <> '' do | ||
| 29 | - begin | ||
| 30 | - strAux3 := 'APL' + trim(inttostr(intAux4)); | ||
| 31 | - | ||
| 32 | - strTripa := ''; // Conterá as informações a serem enviadas ao Gerente. | ||
| 33 | - // Obtenho do registro o valor que foi previamente armazenado | ||
| 34 | - ValorChavePerfis := Trim(Registro.GetValorChaveRegIni('Coleta',strAux3, p_path_cacic_ini)); | ||
| 35 | - if (ValorChavePerfis <> '') then | ||
| 36 | - Begin | ||
| 37 | - //Atenção, OS ELEMENTOS DEVEM ESTAR DE ACORDO COM A ORDEM QUE SÃO TRATADOS NO MÓDULO GERENTE. | ||
| 38 | - tstrTripa2 := Utils.Explode(ValorChavePerfis,','); | ||
| 39 | - if (strAux <> '') then strAux := strAux + '#'; | ||
| 40 | - strAux := strAux + trim(tstrTripa2[0]) + ','; | ||
| 41 | - | ||
| 42 | - | ||
| 43 | - //Coleta de Informação de Licença | ||
| 44 | - if (trim(tstrTripa2[2])='0') then //Vazio | ||
| 45 | - Begin | ||
| 46 | - strAux := strAux + ','; | ||
| 47 | - End; | ||
| 48 | - if (trim(tstrTripa2[2])='1') then //Caminho\Chave\Valor em Registry | ||
| 49 | - Begin | ||
| 50 | - strAux4 := Trim(Registro.GetValorChaveRegEdit(trim(tstrTripa2[3]))); | ||
| 51 | - if (strAux4 = '') then strAux4 := '?'; | ||
| 52 | - strAux := strAux + strAux4 + ','; | ||
| 53 | - End; | ||
| 54 | - if (trim(tstrTripa2[2])='2') then //Nome\Seção\Chave de Arquivo INI | ||
| 55 | - Begin | ||
| 56 | - Try | ||
| 57 | - if (LastPos('/',trim(tstrTripa2[3]))>0) then | ||
| 58 | - Begin | ||
| 59 | - tstrTripa3 := Utils.Explode(trim(tstrTripa2[3]),'\'); | ||
| 60 | - strAux4 := Trim(Registro.GetValorChaveRegIni(tstrTripa3[1],tstrTripa3[2],tstrTripa3[0])); | ||
| 61 | - if (strAux4 = '') then strAux4 := '?'; | ||
| 62 | - strAux := strAux + strAux4 + ','; | ||
| 63 | - End; | ||
| 64 | - if (LastPos('\',trim(tstrTripa2[3]))=0) then | ||
| 65 | - Begin | ||
| 66 | - strAux := strAux + 'Parâm.Lic.Incorreto,'; | ||
| 67 | - End | ||
| 68 | - Except | ||
| 69 | - strAux := strAux + 'Parâm.Lic.Incorreto,'; | ||
| 70 | - End; | ||
| 71 | - End; | ||
| 72 | - | ||
| 73 | - | ||
| 74 | - //Coleta de Informação de Instalação | ||
| 75 | - if (trim(tstrTripa2[4])='0') then //Vazio | ||
| 76 | - Begin | ||
| 77 | - strAux := strAux + ','; | ||
| 78 | - End; | ||
| 79 | - | ||
| 80 | - if (trim(tstrTripa2[4])='1') or (trim(tstrTripa2[4]) = '2') then //Nome de Executável OU Nome de Arquivo de Configuração (CADPF!!!) | ||
| 81 | - Begin | ||
| 82 | - strAux1 := trim(utils.FileSearch('\',trim(tstrTripa2[5]))); | ||
| 83 | - if (strAux1 <> '') then strAux := strAux + 'S,'; | ||
| 84 | - if (strAux1 = '') then strAux := strAux + 'N,'; | ||
| 85 | - End; | ||
| 86 | - | ||
| 87 | - if (trim(tstrTripa2[4])='3') then //Caminho\Chave\Valor em Registry | ||
| 88 | - Begin | ||
| 89 | - strAux1 := Trim(Registro.GetValorChaveRegEdit(trim(tstrTripa2[5]))); | ||
| 90 | - if (strAux1 <> '') then strAux := strAux + 'S,'; | ||
| 91 | - if (strAux1 = '') then strAux := strAux + 'N,'; | ||
| 92 | - End; | ||
| 93 | - | ||
| 94 | - | ||
| 95 | - //Coleta de Informação de Versão | ||
| 96 | - if (trim(tstrTripa2[6])='0') then //Vazio | ||
| 97 | - Begin | ||
| 98 | - strAux := strAux + ','; | ||
| 99 | - End; | ||
| 100 | - | ||
| 101 | - if (trim(tstrTripa2[6])='1') then //Data de Arquivo | ||
| 102 | - Begin | ||
| 103 | - strAux1 := trim(utils.FileSearch('\',trim(tstrTripa2[7]))); | ||
| 104 | - if (strAux1 <> '') then | ||
| 105 | - Begin | ||
| 106 | - strAux := strAux + DateToStr(FileDateToDateTime(FileAge(strAux1)))+','; | ||
| 107 | - End; | ||
| 108 | - if (strAux1 = '') then strAux := strAux + '?,'; | ||
| 109 | - End; | ||
| 110 | - | ||
| 111 | - if (trim(tstrTripa2[6])='2') then //Caminho\Chave\Valor em Registry | ||
| 112 | - Begin | ||
| 113 | - strAux1 := Trim(Registro.GetValorChaveRegEdit(trim(tstrTripa2[7]))); | ||
| 114 | - if (strAux1 <> '') then strAux := strAux + strAux1 + ','; | ||
| 115 | - if (strAux1 = '') then strAux := strAux + '?,'; | ||
| 116 | - End; | ||
| 117 | - | ||
| 118 | - if (trim(tstrTripa2[6])='3') then //Nome\Seção\Chave de Arquivo INI | ||
| 119 | - Begin | ||
| 120 | - Try | ||
| 121 | - if (LastPos('\',trim(tstrTripa2[7]))>0) then | ||
| 122 | - Begin | ||
| 123 | - tstrTripa3 := Utils.Explode(trim(tstrTripa2[7]),'\'); | ||
| 124 | - strAux4 := Trim(Registro.GetValorChaveRegIni(tstrTripa3[1],tstrTripa3[2],tstrTripa3[0])); | ||
| 125 | - if (strAux4 = '') then strAux4 := '?'; | ||
| 126 | - strAux := strAux + strAux4 + ','; | ||
| 127 | - | ||
| 128 | - End; | ||
| 129 | - if (LastPos('\',trim(tstrTripa2[7]))=0) then | ||
| 130 | - Begin | ||
| 131 | - strAux := strAux + 'Parâm.Versao Incorreto,'; | ||
| 132 | - End | ||
| 133 | - Except | ||
| 134 | - strAux := strAux + 'Parâm.Versao Incorreto,'; | ||
| 135 | - End; | ||
| 136 | - End; | ||
| 137 | - | ||
| 138 | - //Coleta de Informação de Engine | ||
| 139 | - if (trim(tstrTripa2[8])='.') then //Vazio | ||
| 140 | - Begin | ||
| 141 | - strAux := strAux + ','; | ||
| 142 | - End; | ||
| 143 | - //O ponto é proposital para quando o último parâmetro vem vazio do Gerente!!! :) | ||
| 144 | - if (trim(tstrTripa2[8])<>'.') then //Arquivo para Versão de Engine | ||
| 145 | - Begin | ||
| 146 | - strAux1 := trim(utils.FileSearch('\',trim(tstrTripa2[8]))); | ||
| 147 | - if (strAux1 <> '') then | ||
| 148 | - Begin | ||
| 149 | - tstrTripa3 := utils.Explode(utils.getVersionInfo(strAux1), '.'); // Pego só os dois primeiros dígitos. Por exemplo: 6.640.0.1001 vira 6.640. | ||
| 150 | - strAux := strAux + tstrTripa3[0] + '.' + tstrTripa3[1]; | ||
| 151 | - End; | ||
| 152 | - if (strAux1 = '') then strAux := strAux + '?,'; | ||
| 153 | - End; | ||
| 154 | - | ||
| 155 | - //Coleta de Informação de Pattern | ||
| 156 | - //O ponto é proposital para quando o último parâmetro vem vazio do Gerente!!! :) | ||
| 157 | - if (trim(tstrTripa2[9])<>'.') then //Arquivo para Versão de Pattern | ||
| 158 | - Begin | ||
| 159 | - strAux1 := trim(utils.FileSearch('\',trim(tstrTripa2[9]))); | ||
| 160 | - if (strAux1 <> '') then | ||
| 161 | - Begin | ||
| 162 | - tstrTripa3 := utils.Explode(utils.getVersionInfo(strAux1), '.'); // Pego só os dois primeiros dígitos. Por exemplo: 6.640.0.1001 vira 6.640. | ||
| 163 | - strAux := strAux + tstrTripa3[0] + '.' + tstrTripa3[1]; | ||
| 164 | - End; | ||
| 165 | - if (strAux1 = '') then strAux := strAux + '?,'; | ||
| 166 | - End; | ||
| 167 | - End; | ||
| 168 | - intAux4 := intAux4 + 1; | ||
| 169 | - End; | ||
| 170 | - | ||
| 171 | - ValorChaveColetado := Trim(Registro.GetValorChaveRegIni('Coleta','APLICATIVOS_MONITORADOS_COLETADOS', p_path_cacic_ini)); | ||
| 172 | -If ((trim(strAux) <> trim(ValorChaveColetado)) and (trim(ValorChaveColetado) <> '')) Then | ||
| 173 | - begin | ||
| 174 | - v_array1 := utils.Explode(strAux, '#'); | ||
| 175 | - strAux := ''; | ||
| 176 | - v_array3 := utils.Explode(ValorChaveColetado, '#'); | ||
| 177 | - for v1 := 0 to (v_array1.count)-1 do | ||
| 178 | - Begin | ||
| 179 | - v_array2 := utils.Explode(v_array1[v1], ','); | ||
| 180 | - v_achei := 0; | ||
| 181 | - for v3 := 0 to (v_array3.count)-1 do | ||
| 182 | - Begin | ||
| 183 | - v_array4 := utils.Explode(v_array3[v3], ','); | ||
| 184 | - if (v_array4=v_array2) then v_achei := 1; | ||
| 185 | - End; | ||
| 186 | - if (v_achei = 0) then | ||
| 187 | - Begin | ||
| 188 | - if (strAUX <> '') then strAUX := strAUX + '#'; | ||
| 189 | - strAUX := strAUX + v_array1[v1]; | ||
| 190 | - End; | ||
| 191 | - End; | ||
| 192 | - end; | ||
| 193 | - | ||
| 194 | - | ||
| 195 | - // Se essas informações forem diferentes significa que houve alguma alteração | ||
| 196 | - // na configuração de hardware. Nesse caso, gravo as informações no BD Central | ||
| 197 | - // e, se não houver problemas durante esse procedimento, atualizo as | ||
| 198 | - // informações no registro. | ||
| 199 | - If (IN_COLETA_FORCADA or (trim(strAux) <> trim(ValorChaveColetado))) Then | ||
| 200 | - Begin | ||
| 201 | - //Envio via rede para ao Agente Gerente, para gravação no BD. | ||
| 202 | - Request_RCH:=TStringList.Create; | ||
| 203 | - Request_RCH.Values['te_node_address'] := TE_NODE_ADDRESS; | ||
| 204 | - Request_RCH.Values['id_so'] := ID_SO; | ||
| 205 | - Request_RCH.Values['te_nome_computador'] := TE_NOME_COMPUTADOR; | ||
| 206 | - Request_RCH.Values['id_ip_rede'] := ID_IP_REDE; | ||
| 207 | - Request_RCH.Values['te_ip'] := TE_IP; | ||
| 208 | - Request_RCH.Values['te_workgroup'] := TE_WORKGROUP; | ||
| 209 | - Request_RCH.Values['te_tripa_monitorados'] := strAux; | ||
| 210 | - | ||
| 211 | - | ||
| 212 | - // Somente atualizo o registro caso não tenha havido nenhum erro durante o envio das informações para o BD | ||
| 213 | - //Sobreponho a informação no registro para posterior comparação, na próxima execução. | ||
| 214 | - if (comunicacao.ComunicaServidor('set_monitorado.php', Request_RCH, '>> Enviando informações de aplicativos monitorados para o servidor.') <> '0') Then | ||
| 215 | - Begin | ||
| 216 | - Registro.SetValorChaveRegIni('Coleta','APLICATIVOS_MONITORADOS_COLETADOS',strAux, p_path_cacic_ini); | ||
| 217 | - end; | ||
| 218 | - Request_RCH.Free; | ||
| 219 | - end | ||
| 220 | - else main.frmMain.Log_Historico('Coleta de informações de aplicativos monitorados não configurada.'); | ||
| 221 | - end; | ||
| 222 | -end; | ||
| 223 | - | ||
| 224 | - | ||
| 225 | -end. | ||
| 226 | - |
col_moni/main_moni.ddp
No preview for this file type
col_moni/main_moni.dfm
| @@ -1,22 +0,0 @@ | @@ -1,22 +0,0 @@ | ||
| 1 | -object frm_col_moni: Tfrm_col_moni | ||
| 2 | - Left = 910 | ||
| 3 | - Top = 715 | ||
| 4 | - Width = 112 | ||
| 5 | - Height = 27 | ||
| 6 | - Caption = 'CACIC - Coletor Aplicativos Monitorados' | ||
| 7 | - Color = clBtnFace | ||
| 8 | - TransparentColor = True | ||
| 9 | - Font.Charset = DEFAULT_CHARSET | ||
| 10 | - Font.Color = clWindowText | ||
| 11 | - Font.Height = -11 | ||
| 12 | - Font.Name = 'MS Sans Serif' | ||
| 13 | - Font.Style = [] | ||
| 14 | - OldCreateOrder = False | ||
| 15 | - PrintScale = poNone | ||
| 16 | - OnCreate = FormCreate | ||
| 17 | - PixelsPerInch = 96 | ||
| 18 | - TextHeight = 13 | ||
| 19 | - object PJVersionInfo1: TPJVersionInfo | ||
| 20 | - Left = 40 | ||
| 21 | - end | ||
| 22 | -end |
col_moni/main_moni.pas
| @@ -1,776 +0,0 @@ | @@ -1,776 +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 | -unit main_moni; | ||
| 19 | - | ||
| 20 | -interface | ||
| 21 | - | ||
| 22 | -uses Windows, Forms, sysutils, inifiles, Registry, Classes, PJVersionInfo; | ||
| 23 | - | ||
| 24 | -var p_path_cacic, p_path_cacic_ini, v_Res_Search, v_Drive, v_File : string; | ||
| 25 | - | ||
| 26 | -type | ||
| 27 | - Tfrm_col_moni = class(TForm) | ||
| 28 | - PJVersionInfo1: TPJVersionInfo; | ||
| 29 | - procedure Executa_Col_moni; | ||
| 30 | - procedure Log_Historico(strMsg : String); | ||
| 31 | - Function Crip(PNome: String): String; | ||
| 32 | - Function DesCrip(PNome: String): String; | ||
| 33 | - function SetValorChaveRegIni(p_Secao: String; p_Chave: String; p_Valor: String; p_Path : String): String; | ||
| 34 | - function GetValorChaveRegIni(p_SectionName, p_KeyName, p_IniFileName : String) : String; | ||
| 35 | - function GetValorChaveRegEdit(Chave: String): Variant; | ||
| 36 | - function GetRootKey(strRootKey: String): HKEY; | ||
| 37 | - Function Explode(Texto, Separador : String) : TStrings; | ||
| 38 | - Function RemoveCaracteresEspeciais(Texto : String) : String; | ||
| 39 | - function GetVersionInfo(p_File: string):string; | ||
| 40 | - function VerFmt(const MS, LS: DWORD): string; | ||
| 41 | - function LetrasDrives : string; | ||
| 42 | - function LastPos(SubStr, S: string): Integer; | ||
| 43 | - function SearchFile(p_Drive,p_File:string) : boolean; | ||
| 44 | - procedure GetSubDirs(Folder:string; sList:TStringList); | ||
| 45 | - procedure FormCreate(Sender: TObject); | ||
| 46 | - private | ||
| 47 | - { Private declarations } | ||
| 48 | - public | ||
| 49 | - { Public declarations } | ||
| 50 | - end; | ||
| 51 | - | ||
| 52 | -var | ||
| 53 | - frm_col_moni: Tfrm_col_moni; | ||
| 54 | - | ||
| 55 | -implementation | ||
| 56 | - | ||
| 57 | -{$R *.dfm} | ||
| 58 | -function Tfrm_col_moni.VerFmt(const MS, LS: DWORD): string; | ||
| 59 | - // Format the version number from the given DWORDs containing the info | ||
| 60 | -begin | ||
| 61 | - Result := Format('%d.%d.%d.%d', | ||
| 62 | - [HiWord(MS), LoWord(MS), HiWord(LS), LoWord(LS)]) | ||
| 63 | -end; | ||
| 64 | - | ||
| 65 | -{ TMainForm } | ||
| 66 | - | ||
| 67 | -function Tfrm_col_moni.GetVersionInfo(p_File: string):string; | ||
| 68 | -begin | ||
| 69 | - PJVersionInfo1.FileName := PChar(p_File); | ||
| 70 | - Result := VerFmt(PJVersionInfo1.FixedFileInfo.dwFileVersionMS, PJVersionInfo1.FixedFileInfo.dwFileVersionLS); | ||
| 71 | -end; | ||
| 72 | - | ||
| 73 | -// Baixada de http://www.infoeng.hpg.ig.com.br/borland_delphi_dicas_2.htm | ||
| 74 | -function Tfrm_col_moni.LetrasDrives: string; | ||
| 75 | -var | ||
| 76 | -Drives: DWord; | ||
| 77 | -I, Tipo: byte; | ||
| 78 | -v_Unidade : string; | ||
| 79 | -begin | ||
| 80 | -Result := ''; | ||
| 81 | -Drives := GetLogicalDrives; | ||
| 82 | -if Drives <> 0 then | ||
| 83 | -for I := 65 to 90 do | ||
| 84 | - if ((Drives shl (31 - (I - 65))) shr 31) = 1 then | ||
| 85 | - Begin | ||
| 86 | - v_Unidade := Char(I) + ':\'; | ||
| 87 | - Tipo := GetDriveType(PChar(v_Unidade)); | ||
| 88 | - case Tipo of | ||
| 89 | - DRIVE_FIXED: Result := Result + Char(I); | ||
| 90 | - end; | ||
| 91 | - End; | ||
| 92 | -end; | ||
| 93 | - | ||
| 94 | -// By Muad Dib 2003 | ||
| 95 | -// at http://www.planet-source-code.com. | ||
| 96 | -// Excelente!!! | ||
| 97 | -function Tfrm_col_moni.SearchFile(p_Drive,p_File:string) : boolean; | ||
| 98 | -var sr:TSearchRec; | ||
| 99 | - sDirList:TStringList; | ||
| 100 | - i:integer; | ||
| 101 | -begin | ||
| 102 | - Result := false; | ||
| 103 | - v_Res_Search := ''; | ||
| 104 | - if FindFirst(p_Drive+p_File,faAnyFile,sr) = 0 then | ||
| 105 | - Begin | ||
| 106 | - v_Res_Search := p_Drive+p_File; | ||
| 107 | - Result := true; | ||
| 108 | - End | ||
| 109 | - else | ||
| 110 | - Begin | ||
| 111 | - repeat | ||
| 112 | - until FindNext(sr)<>0; | ||
| 113 | - FindClose(sr); | ||
| 114 | - sDirList:= TStringList.Create; | ||
| 115 | - try | ||
| 116 | - GetSubDirs(p_Drive,sDirList); | ||
| 117 | - for i:=0 to sDirList.Count-1 do | ||
| 118 | - if (sDirList[i]<>'.') and (sDirList[i]<>'..') then | ||
| 119 | - begin | ||
| 120 | - Application.ProcessMessages; | ||
| 121 | - if (SearchFile(IncludeTrailingPathDelimiter(p_Drive+sDirList[i]),p_File)) then | ||
| 122 | - Begin | ||
| 123 | - Result := true; | ||
| 124 | - Break; | ||
| 125 | - End; | ||
| 126 | - end; | ||
| 127 | - finally | ||
| 128 | - sDirList.Free; | ||
| 129 | - End; | ||
| 130 | - end; | ||
| 131 | -end; | ||
| 132 | - | ||
| 133 | -procedure Tfrm_col_moni.GetSubDirs(Folder:string; sList:TStringList); | ||
| 134 | - var | ||
| 135 | - sr:TSearchRec; | ||
| 136 | -begin | ||
| 137 | - if FindFirst(Folder+'*.*',faDirectory,sr)=0 then | ||
| 138 | - try | ||
| 139 | - repeat | ||
| 140 | - if(sr.Attr and faDirectory)=faDirectory then | ||
| 141 | - sList.Add(sr.Name); | ||
| 142 | - until FindNext(sr)<>0; | ||
| 143 | - finally | ||
| 144 | - FindClose(sr); | ||
| 145 | - end; | ||
| 146 | -end; | ||
| 147 | - | ||
| 148 | - | ||
| 149 | -//Para gravar no Arquivo INI... | ||
| 150 | -function Tfrm_col_moni.SetValorChaveRegIni(p_Secao: String; p_Chave: String; p_Valor: String; p_Path : String): String; | ||
| 151 | -var Reg_Ini : TIniFile; | ||
| 152 | -begin | ||
| 153 | - FileSetAttr (p_Path,0); | ||
| 154 | - Reg_Ini := TIniFile.Create(p_Path); | ||
| 155 | -// Reg_Ini.WriteString(frm_col_moni.Crip(p_Secao), frm_col_moni.Crip(p_Chave), frm_col_moni.Crip(p_Valor)); | ||
| 156 | - Reg_Ini.WriteString(p_Secao, p_Chave, p_Valor); | ||
| 157 | - Reg_Ini.Free; | ||
| 158 | -end; | ||
| 159 | - | ||
| 160 | -//Para buscar do Arquivo INI... | ||
| 161 | -// Marreta devido a limitações do KERNEL w9x no tratamento de arquivos texto e suas seções | ||
| 162 | -function Tfrm_col_moni.GetValorChaveRegIni(p_SectionName, p_KeyName, p_IniFileName : String) : String; | ||
| 163 | -var | ||
| 164 | - FileText : TStringList; | ||
| 165 | - i, j, v_Size_Section, v_Size_Key : integer; | ||
| 166 | - v_SectionName, v_KeyName : string; | ||
| 167 | - begin | ||
| 168 | - Result := ''; | ||
| 169 | - v_SectionName := '[' + p_SectionName + ']'; | ||
| 170 | - v_Size_Section := strLen(PChar(v_SectionName)); | ||
| 171 | - v_KeyName := p_KeyName + '='; | ||
| 172 | - v_Size_Key := strLen(PChar(v_KeyName)); | ||
| 173 | - FileText := TStringList.Create; | ||
| 174 | - try | ||
| 175 | - FileText.LoadFromFile(p_IniFileName); | ||
| 176 | - For i := 0 To FileText.Count - 1 Do | ||
| 177 | - Begin | ||
| 178 | - if (LowerCase(Trim(PChar(Copy(FileText[i],1,v_Size_Section)))) = LowerCase(Trim(PChar(v_SectionName)))) then | ||
| 179 | - Begin | ||
| 180 | - For j := i to FileText.Count - 1 Do | ||
| 181 | - Begin | ||
| 182 | - if (LowerCase(Trim(PChar(Copy(FileText[j],1,v_Size_Key)))) = LowerCase(Trim(PChar(v_KeyName)))) then | ||
| 183 | - Begin | ||
| 184 | - Result := PChar(Copy(FileText[j],v_Size_Key + 1,strLen(PChar(FileText[j]))-v_Size_Key)); | ||
| 185 | - Break; | ||
| 186 | - End; | ||
| 187 | - End; | ||
| 188 | - End; | ||
| 189 | - if (Result <> '') then break; | ||
| 190 | - End; | ||
| 191 | - finally | ||
| 192 | - FileText.Free; | ||
| 193 | - end; | ||
| 194 | - end; | ||
| 195 | - | ||
| 196 | -Function Tfrm_col_moni.Explode(Texto, Separador : String) : TStrings; | ||
| 197 | -var | ||
| 198 | - strItem : String; | ||
| 199 | - ListaAuxUTILS : TStrings; | ||
| 200 | - NumCaracteres, I : Integer; | ||
| 201 | -Begin | ||
| 202 | - ListaAuxUTILS := TStringList.Create; | ||
| 203 | - strItem := ''; | ||
| 204 | - NumCaracteres := Length(Texto); | ||
| 205 | - For I := 0 To NumCaracteres Do | ||
| 206 | - If (Texto[I] = Separador) or (I = NumCaracteres) Then | ||
| 207 | - Begin | ||
| 208 | - If (I = NumCaracteres) then strItem := strItem + Texto[I]; | ||
| 209 | - ListaAuxUTILS.Add(Trim(strItem)); | ||
| 210 | - strItem := ''; | ||
| 211 | - end | ||
| 212 | - Else strItem := strItem + Texto[I]; | ||
| 213 | - Explode := ListaAuxUTILS; | ||
| 214 | -end; | ||
| 215 | - | ||
| 216 | -function Tfrm_col_moni.GetRootKey(strRootKey: String): HKEY; | ||
| 217 | -begin | ||
| 218 | - if Trim(strRootKey) = 'HKEY_LOCAL_MACHINE' Then Result := HKEY_LOCAL_MACHINE | ||
| 219 | - else if Trim(strRootKey) = 'HKEY_CLASSES_ROOT' Then Result := HKEY_CLASSES_ROOT | ||
| 220 | - else if Trim(strRootKey) = 'HKEY_CURRENT_USER' Then Result := HKEY_CURRENT_USER | ||
| 221 | - else if Trim(strRootKey) = 'HKEY_USERS' Then Result := HKEY_USERS | ||
| 222 | - else if Trim(strRootKey) = 'HKEY_CURRENT_CONFIG' Then Result := HKEY_CURRENT_CONFIG | ||
| 223 | - else if Trim(strRootKey) = 'HKEY_DYN_DATA' Then Result := HKEY_DYN_DATA; | ||
| 224 | -end; | ||
| 225 | - | ||
| 226 | -Function Tfrm_col_moni.RemoveCaracteresEspeciais(Texto : String) : String; | ||
| 227 | -var I : Integer; | ||
| 228 | - strAux : String; | ||
| 229 | -Begin | ||
| 230 | - For I := 0 To Length(Texto) Do | ||
| 231 | - if ord(Texto[I]) in [32..126] Then | ||
| 232 | - strAux := strAux + Texto[I] | ||
| 233 | - else strAux := strAux + ' '; // Coloca um espaço onde houver caracteres especiais | ||
| 234 | - Result := strAux; | ||
| 235 | -end; | ||
| 236 | - | ||
| 237 | -function Tfrm_col_moni.GetValorChaveRegEdit(Chave: String): Variant; | ||
| 238 | -var RegEditGet: TRegistry; | ||
| 239 | - RegDataType: TRegDataType; | ||
| 240 | - strRootKey, strKey, strValue, s: String; | ||
| 241 | - ListaAuxGet : TStrings; | ||
| 242 | - DataSize, Len, I : Integer; | ||
| 243 | -begin | ||
| 244 | - try | ||
| 245 | - Result := ''; | ||
| 246 | - ListaAuxGet := frm_col_moni.Explode(Chave, '\'); | ||
| 247 | - | ||
| 248 | - strRootKey := ListaAuxGet[0]; | ||
| 249 | - For I := 1 To ListaAuxGet.Count - 2 Do strKey := strKey + ListaAuxGet[I] + '\'; | ||
| 250 | - strValue := ListaAuxGet[ListaAuxGet.Count - 1]; | ||
| 251 | - if (strValue = '(Padrão)') then strValue := ''; //Para os casos de se querer buscar o valor default (Padrão) | ||
| 252 | - RegEditGet := TRegistry.Create; | ||
| 253 | - | ||
| 254 | - RegEditGet.Access := KEY_READ; | ||
| 255 | - RegEditGet.Rootkey := GetRootKey(strRootKey); | ||
| 256 | - if RegEditGet.OpenKeyReadOnly(strKey) then //teste | ||
| 257 | - Begin | ||
| 258 | - RegDataType := RegEditGet.GetDataType(strValue); | ||
| 259 | - if (RegDataType = rdString) or (RegDataType = rdExpandString) then Result := RegEditGet.ReadString(strValue) | ||
| 260 | - else if RegDataType = rdInteger then Result := RegEditGet.ReadInteger(strValue) | ||
| 261 | - else if (RegDataType = rdBinary) or (RegDataType = rdUnknown) | ||
| 262 | - then | ||
| 263 | - begin | ||
| 264 | - DataSize := RegEditGet.GetDataSize(strValue); | ||
| 265 | - if DataSize = -1 then exit; | ||
| 266 | - SetLength(s, DataSize); | ||
| 267 | - Len := RegEditGet.ReadBinaryData(strValue, PChar(s)^, DataSize); | ||
| 268 | - if Len <> DataSize then exit; | ||
| 269 | - Result := frm_col_moni.RemoveCaracteresEspeciais(s); | ||
| 270 | - end | ||
| 271 | - end; | ||
| 272 | - finally | ||
| 273 | - RegEditGet.CloseKey; | ||
| 274 | - RegEditGet.Free; | ||
| 275 | - ListaAuxGet.Free; | ||
| 276 | - | ||
| 277 | - end; | ||
| 278 | -end; | ||
| 279 | - | ||
| 280 | - | ||
| 281 | -// Simples rotinas de Criptografação e Descriptografação | ||
| 282 | -// Baixadas de http://www.costaweb.com.br/forum/delphi/474.shtml | ||
| 283 | -Function Tfrm_col_moni.Crip(PNome: String): String; | ||
| 284 | -Var | ||
| 285 | - TamI, TamF: Integer; | ||
| 286 | - SenA, SenM, SenD: String; | ||
| 287 | -Begin | ||
| 288 | - SenA := Trim(PNome); | ||
| 289 | - TamF := Length(SenA); | ||
| 290 | - if (TamF > 1) then | ||
| 291 | - begin | ||
| 292 | - SenM := ''; | ||
| 293 | - SenD := ''; | ||
| 294 | - For TamI := TamF Downto 1 do | ||
| 295 | - Begin | ||
| 296 | - SenM := SenM + Copy(SenA,TamI,1); | ||
| 297 | - End; | ||
| 298 | - SenD := Chr(TamF+95)+Copy(SenM,1,1)+Copy(SenA,1,1)+Copy(SenM,2,TamF-2)+Chr(75+TamF); | ||
| 299 | - end | ||
| 300 | - else SenD := SenA; | ||
| 301 | - Result := SenD; | ||
| 302 | -End; | ||
| 303 | - | ||
| 304 | -Function Tfrm_col_moni.DesCrip(PNome: String): String; | ||
| 305 | -Var | ||
| 306 | - TamI, TamF: Integer; | ||
| 307 | - SenA, SenM, SenD: String; | ||
| 308 | -Begin | ||
| 309 | - SenA := Trim(PNome); | ||
| 310 | - TamF := Length(SenA) - 2; | ||
| 311 | - if (TamF > 1) then | ||
| 312 | - begin | ||
| 313 | - SenM := ''; | ||
| 314 | - SenD := ''; | ||
| 315 | - SenA := Copy(SenA,2,TamF); | ||
| 316 | - SenM := Copy(SenA,1,1)+Copy(SenA,3,TamF)+Copy(SenA,2,1); | ||
| 317 | - For TamI := TamF Downto 1 do | ||
| 318 | - Begin | ||
| 319 | - SenD := SenD + Copy(SenM,TamI,1); | ||
| 320 | - End; | ||
| 321 | - end | ||
| 322 | - else SenD := SenA; | ||
| 323 | - Result := SenD; | ||
| 324 | -End; | ||
| 325 | - | ||
| 326 | -procedure Tfrm_col_moni.Log_Historico(strMsg : String); | ||
| 327 | -var | ||
| 328 | - HistoricoLog : TextFile; | ||
| 329 | - strDataArqLocal, strDataAtual : string; | ||
| 330 | -begin | ||
| 331 | - try | ||
| 332 | - FileSetAttr (p_path_cacic + 'cacic2.log',0); // Retira os atributos do arquivo para evitar o erro FILE ACCESS DENIED em máquinas 2000 | ||
| 333 | - AssignFile(HistoricoLog,p_path_cacic + 'cacic2.log'); {Associa o arquivo a uma variável do tipo TextFile} | ||
| 334 | - {$IOChecks off} | ||
| 335 | - Reset(HistoricoLog); {Abre o arquivo texto} | ||
| 336 | - {$IOChecks on} | ||
| 337 | - if (IOResult <> 0) then // Arquivo não existe, será recriado. | ||
| 338 | - begin | ||
| 339 | - Rewrite (HistoricoLog); | ||
| 340 | - Append(HistoricoLog); | ||
| 341 | - Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now) + '======================> Iniciando o Log do CACIC <======================='); | ||
| 342 | - end; | ||
| 343 | - DateTimeToString(strDataArqLocal, 'yyyymmdd', FileDateToDateTime(Fileage(p_path_cacic + 'cacic2.log'))); | ||
| 344 | - DateTimeToString(strDataAtual , 'yyyymmdd', Date); | ||
| 345 | - if (strDataAtual <> strDataArqLocal) then // Se o arquivo INI não é da data atual... | ||
| 346 | - begin | ||
| 347 | - Rewrite (HistoricoLog); //Cria/Recria o arquivo | ||
| 348 | - Append(HistoricoLog); | ||
| 349 | - Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now) + '======================> Iniciando o Log do CACIC <======================='); | ||
| 350 | - end; | ||
| 351 | - Append(HistoricoLog); | ||
| 352 | - Writeln(HistoricoLog,FormatDateTime('dd/mm hh:nn:ss : ', Now) + strMsg); {Grava a string Texto no arquivo texto} | ||
| 353 | - CloseFile(HistoricoLog); {Fecha o arquivo texto} | ||
| 354 | - except | ||
| 355 | - Log_Historico('Erro na gravação do log!'); | ||
| 356 | - end; | ||
| 357 | -end; | ||
| 358 | - | ||
| 359 | -function Tfrm_col_moni.LastPos(SubStr, S: string): Integer; | ||
| 360 | -var | ||
| 361 | - Found, Len, Pos: integer; | ||
| 362 | -begin | ||
| 363 | - Pos := Length(S); | ||
| 364 | - Len := Length(SubStr); | ||
| 365 | - Found := 0; | ||
| 366 | - while (Pos > 0) and (Found = 0) do | ||
| 367 | - begin | ||
| 368 | - if Copy(S, Pos, Len) = SubStr then | ||
| 369 | - Found := Pos; | ||
| 370 | - Dec(Pos); | ||
| 371 | - end; | ||
| 372 | - LastPos := Found; | ||
| 373 | -end; | ||
| 374 | - | ||
| 375 | - | ||
| 376 | -procedure Tfrm_col_moni.Executa_Col_moni; | ||
| 377 | -var tstrTripa2, tstrTripa3, v_array1, v_array2, v_array3, v_array4 : TStrings; | ||
| 378 | - strAux, strAux1, strAux3, strAux4, strTripa, ValorChavePerfis, ValorChaveColetado, v_LetrasDrives, v_Data : String; | ||
| 379 | - intAux4, v1, v3, v_achei : Integer; | ||
| 380 | - | ||
| 381 | -begin | ||
| 382 | - Try | ||
| 383 | - // Verifica se deverá ser realizada a coleta de informações de sistemas monitorados neste | ||
| 384 | - // computador, perguntando ao agente gerente. | ||
| 385 | - Log_Historico('* Coletando informações de Sistemas Monitorados.'); | ||
| 386 | - ShortDateFormat := 'dd/mm/yyyy'; | ||
| 387 | - intAux4 := 1; | ||
| 388 | - strAux3 := ''; | ||
| 389 | - ValorChavePerfis := '*'; | ||
| 390 | - v_LetrasDrives := LetrasDrives; | ||
| 391 | - | ||
| 392 | - while ValorChavePerfis <> '' do | ||
| 393 | - begin | ||
| 394 | - strAux3 := 'SIS' + trim(inttostr(intAux4)); | ||
| 395 | - strTripa := ''; // Conterá as informações a serem enviadas ao Gerente. | ||
| 396 | - // Obtenho do registro o valor que foi previamente armazenado | ||
| 397 | - ValorChavePerfis := Trim(GetValorChaveRegIni('Coleta',strAux3, p_path_cacic + 'cacic2.ini')); | ||
| 398 | - | ||
| 399 | - if (ValorChavePerfis <> '') then | ||
| 400 | - Begin | ||
| 401 | - //Atenção, OS ELEMENTOS DEVEM ESTAR DE ACORDO COM A ORDEM QUE SÃO TRATADOS NO MÓDULO GERENTE. | ||
| 402 | - tstrTripa2 := Explode(ValorChavePerfis,','); | ||
| 403 | - if (strAux <> '') then strAux := strAux + '#'; | ||
| 404 | - strAux := strAux + trim(tstrTripa2[0]) + ','; | ||
| 405 | - | ||
| 406 | - //Coleta de Informação de Licença | ||
| 407 | - if (trim(tstrTripa2[2])='0') then //Vazio | ||
| 408 | - Begin | ||
| 409 | - strAux := strAux + ','; | ||
| 410 | - End; | ||
| 411 | - | ||
| 412 | - if (trim(tstrTripa2[2])='1') then //Caminho\Chave\Valor em Registry | ||
| 413 | - Begin | ||
| 414 | - strAux4 := ''; | ||
| 415 | - Try | ||
| 416 | - strAux4 := Trim(GetValorChaveRegEdit(trim(tstrTripa2[3]))); | ||
| 417 | - Except | ||
| 418 | - End; | ||
| 419 | - if (strAux4 = '') then strAux4 := '?'; | ||
| 420 | - strAux := strAux + strAux4 + ','; | ||
| 421 | - End; | ||
| 422 | - | ||
| 423 | - if (trim(tstrTripa2[2])='2') then //Nome/Seção/Chave de Arquivo INI | ||
| 424 | - Begin | ||
| 425 | - Try | ||
| 426 | - if (LastPos('/',trim(tstrTripa2[3]))>0) then | ||
| 427 | - Begin | ||
| 428 | - tstrTripa3 := Explode(trim(tstrTripa2[3]),'/'); | ||
| 429 | - // | ||
| 430 | - for v1:=1 to length(v_LetrasDrives) do | ||
| 431 | - Begin | ||
| 432 | - v_File := trim(tstrTripa3[0]); | ||
| 433 | - if (LastPos(':\',v_File)>0) then | ||
| 434 | - Begin | ||
| 435 | - v_Drive := Copy(v_File,1,3); | ||
| 436 | - v_File := Copy(v_File,4,Length(v_File)); | ||
| 437 | - End | ||
| 438 | - else | ||
| 439 | - Begin | ||
| 440 | - v_Drive := v_LetrasDrives[v1] + ':'; | ||
| 441 | - if (Copy(v_File,1,1)<>'\') then v_Drive := v_Drive + '\'; | ||
| 442 | - v_File := Copy(v_File,1,Length(v_File)); | ||
| 443 | - End; | ||
| 444 | - | ||
| 445 | - strAux1 := ExtractShortPathName(v_Drive + v_File); | ||
| 446 | - if (strAux1 = '') then | ||
| 447 | - begin | ||
| 448 | - if (SearchFile(v_Drive,v_File)) then | ||
| 449 | - Begin | ||
| 450 | - strAux1 := v_Res_Search; | ||
| 451 | - break; | ||
| 452 | - End; | ||
| 453 | - end | ||
| 454 | - else break; | ||
| 455 | - End; | ||
| 456 | - | ||
| 457 | - | ||
| 458 | - // | ||
| 459 | - strAux4 := Trim(GetValorChaveRegIni(tstrTripa3[1],tstrTripa3[2],strAux1)); | ||
| 460 | - if (strAux4 = '') then strAux4 := '?'; | ||
| 461 | - strAux := strAux + strAux4 + ','; | ||
| 462 | - End; | ||
| 463 | - | ||
| 464 | - if (LastPos('/',trim(tstrTripa2[3]))=0) then | ||
| 465 | - Begin | ||
| 466 | - strAux := strAux + 'Parâm.Lic.Incorreto,'; | ||
| 467 | - End | ||
| 468 | - Except | ||
| 469 | - strAux := strAux + 'Parâm.Lic.Incorreto,'; | ||
| 470 | - End; | ||
| 471 | - End; | ||
| 472 | - | ||
| 473 | - //Coleta de Informação de Instalação | ||
| 474 | - if (trim(tstrTripa2[5])='0') then //Vazio | ||
| 475 | - Begin | ||
| 476 | - strAux := strAux + ','; | ||
| 477 | - End; | ||
| 478 | - | ||
| 479 | - if (trim(tstrTripa2[5])='1') or (trim(tstrTripa2[5]) = '2') then //Nome de Executável OU Nome de Arquivo de Configuração (CADPF!!!) | ||
| 480 | - Begin | ||
| 481 | - strAux1 := ''; | ||
| 482 | - for v1:=1 to length(v_LetrasDrives) do | ||
| 483 | - Begin | ||
| 484 | - v_File := trim(tstrTripa2[6]); | ||
| 485 | - if (LastPos(':\',v_File)>0) then | ||
| 486 | - Begin | ||
| 487 | - v_Drive := Copy(v_File,1,3); | ||
| 488 | - v_File := Copy(v_File,4,Length(v_File)); | ||
| 489 | - End | ||
| 490 | - else | ||
| 491 | - Begin | ||
| 492 | - v_Drive := v_LetrasDrives[v1] + ':'; | ||
| 493 | - if (Copy(v_File,1,1)<>'\') then v_Drive := v_Drive + '\'; | ||
| 494 | - v_File := Copy(v_File,1,Length(v_File)); | ||
| 495 | - End; | ||
| 496 | - | ||
| 497 | - strAux1 := ExtractShortPathName(v_Drive + v_File); | ||
| 498 | - if (strAux1 = '') then | ||
| 499 | - begin | ||
| 500 | - if (SearchFile(v_Drive,v_File)) then | ||
| 501 | - Begin | ||
| 502 | - strAux1 := v_Res_Search; | ||
| 503 | - break; | ||
| 504 | - End; | ||
| 505 | - end | ||
| 506 | - else break; | ||
| 507 | - | ||
| 508 | - End; | ||
| 509 | - | ||
| 510 | - if (strAux1 <> '') then strAux := strAux + 'S,'; | ||
| 511 | - if (strAux1 = '') then strAux := strAux + 'N,'; | ||
| 512 | - strAux1 := ''; | ||
| 513 | - End; | ||
| 514 | - | ||
| 515 | - if (trim(tstrTripa2[5])='3') then //Caminho\Chave\Valor em Registry | ||
| 516 | - Begin | ||
| 517 | - strAux1 := ''; | ||
| 518 | - Try | ||
| 519 | - strAux1 := Trim(GetValorChaveRegEdit(trim(tstrTripa2[5]))); | ||
| 520 | - Except | ||
| 521 | - End; | ||
| 522 | - if (strAux1 <> '') then strAux := strAux + 'S,'; | ||
| 523 | - if (strAux1 = '') then strAux := strAux + 'N,'; | ||
| 524 | - strAux1 := ''; | ||
| 525 | - End; | ||
| 526 | - | ||
| 527 | - //Coleta de Informação de Versão | ||
| 528 | - if (trim(tstrTripa2[7])='0') then //Vazio | ||
| 529 | - Begin | ||
| 530 | - strAux := strAux + ','; | ||
| 531 | - End; | ||
| 532 | - | ||
| 533 | - if (trim(tstrTripa2[7])='1') then //Data de Arquivo | ||
| 534 | - Begin | ||
| 535 | - strAux1 := ''; | ||
| 536 | - for v1:=1 to length(v_LetrasDrives) do | ||
| 537 | - Begin | ||
| 538 | - v_File := trim(tstrTripa2[8]); | ||
| 539 | - if (LastPos(':\',v_File)>0) then | ||
| 540 | - Begin | ||
| 541 | - v_Drive := Copy(v_File,1,3); | ||
| 542 | - v_File := Copy(v_File,4,Length(v_File)); | ||
| 543 | - End | ||
| 544 | - else | ||
| 545 | - Begin | ||
| 546 | - v_Drive := v_LetrasDrives[v1] + ':'; | ||
| 547 | - if (Copy(v_File,1,1)<>'\') then v_Drive := v_Drive + '\'; | ||
| 548 | - v_File := Copy(v_File,1,Length(v_File)); | ||
| 549 | - End; | ||
| 550 | - | ||
| 551 | - strAux1 := ExtractShortPathName(v_Drive + v_File); | ||
| 552 | - if (strAux1 = '') then | ||
| 553 | - begin | ||
| 554 | - if (SearchFile(v_Drive,v_File)) then | ||
| 555 | - Begin | ||
| 556 | - strAux1 := v_Res_Search; | ||
| 557 | - break; | ||
| 558 | - End; | ||
| 559 | - end | ||
| 560 | - else break; | ||
| 561 | - End; | ||
| 562 | - if (strAux1 <> '') then | ||
| 563 | - Begin | ||
| 564 | - v_Data := StringReplace(DateToStr(FileDateToDateTime(FileAge(strAux1))),'.','/',[rfReplaceAll]); | ||
| 565 | - v_Data := StringReplace(v_Data,'-','/',[rfReplaceAll]); | ||
| 566 | - strAux := strAux + v_Data + ','; | ||
| 567 | - v_Data := ''; | ||
| 568 | - End; | ||
| 569 | - if (strAux1 = '') then strAux := strAux + '?,'; | ||
| 570 | - strAux1 := ''; | ||
| 571 | - End; | ||
| 572 | - | ||
| 573 | - if (trim(tstrTripa2[7])='2') then //Caminho\Chave\Valor em Registry | ||
| 574 | - Begin | ||
| 575 | - strAux1 := ''; | ||
| 576 | - Try | ||
| 577 | - strAux1 := Trim(GetValorChaveRegEdit(trim(tstrTripa2[8]))); | ||
| 578 | - Except | ||
| 579 | - End; | ||
| 580 | - if (strAux1 <> '') then strAux := strAux + strAux1 + ','; | ||
| 581 | - if (strAux1 = '') then strAux := strAux + '?,'; | ||
| 582 | - strAux1 := ''; | ||
| 583 | - End; | ||
| 584 | - | ||
| 585 | - if (trim(tstrTripa2[7])='3') then //Nome/Seção/Chave de Arquivo INI | ||
| 586 | - Begin | ||
| 587 | - Try | ||
| 588 | - if (LastPos('/',trim(tstrTripa2[8]))>0) then | ||
| 589 | - Begin | ||
| 590 | - tstrTripa3 := Explode(trim(tstrTripa2[8]),'/'); | ||
| 591 | - // | ||
| 592 | - for v1:=1 to length(v_LetrasDrives) do | ||
| 593 | - Begin | ||
| 594 | - v_File := trim(tstrTripa3[0]); | ||
| 595 | - if (LastPos(':\',v_File)>0) then | ||
| 596 | - Begin | ||
| 597 | - v_Drive := Copy(v_File,1,3); | ||
| 598 | - v_File := Copy(v_File,4,Length(v_File)); | ||
| 599 | - End | ||
| 600 | - else | ||
| 601 | - Begin | ||
| 602 | - v_Drive := v_LetrasDrives[v1] + ':'; | ||
| 603 | - if (Copy(v_File,1,1)<>'\') then v_Drive := v_Drive + '\'; | ||
| 604 | - v_File := Copy(v_File,1,Length(v_File)); | ||
| 605 | - End; | ||
| 606 | - | ||
| 607 | - | ||
| 608 | - strAux1 := ExtractShortPathName(v_Drive + v_File); | ||
| 609 | - if (strAux1 = '') then | ||
| 610 | - begin | ||
| 611 | - if (SearchFile(v_Drive,v_File)) then | ||
| 612 | - Begin | ||
| 613 | - strAux1 := v_Res_Search; | ||
| 614 | - break; | ||
| 615 | - End; | ||
| 616 | - end | ||
| 617 | - else break; | ||
| 618 | - End; | ||
| 619 | - | ||
| 620 | - // | ||
| 621 | - strAux4 := Trim(GetValorChaveRegIni(tstrTripa3[1],tstrTripa3[2],strAux1)); | ||
| 622 | - if (strAux4 = '') then strAux4 := '?'; | ||
| 623 | - strAux := strAux + strAux4 + ','; | ||
| 624 | - End | ||
| 625 | - else | ||
| 626 | - Begin | ||
| 627 | - strAux := strAux + 'Parâm.Versao Incorreto,'; | ||
| 628 | - End; | ||
| 629 | - Except | ||
| 630 | - End; | ||
| 631 | - End; | ||
| 632 | - | ||
| 633 | - //Coleta de Informação de Engine | ||
| 634 | - if (trim(tstrTripa2[9])='.') then //Vazio | ||
| 635 | - Begin | ||
| 636 | - strAux := strAux + ','; | ||
| 637 | - End; | ||
| 638 | - //O ponto é proposital para quando o último parâmetro vem vazio do Gerente!!! :) | ||
| 639 | - if (trim(tstrTripa2[9])<>'.') then //Arquivo para Versão de Engine | ||
| 640 | - Begin | ||
| 641 | - for v1:=1 to length(v_LetrasDrives) do | ||
| 642 | - Begin | ||
| 643 | - v_File := trim(tstrTripa2[9]); | ||
| 644 | - if (LastPos(':\',v_File)>0) then | ||
| 645 | - Begin | ||
| 646 | - v_Drive := Copy(v_File,1,3); | ||
| 647 | - v_File := Copy(v_File,4,Length(v_File)); | ||
| 648 | - End | ||
| 649 | - else | ||
| 650 | - Begin | ||
| 651 | - v_Drive := v_LetrasDrives[v1] + ':'; | ||
| 652 | - if (Copy(v_File,1,1)<>'\') then v_Drive := v_Drive + '\'; | ||
| 653 | - v_File := Copy(v_File,1,Length(v_File)); | ||
| 654 | - End; | ||
| 655 | - | ||
| 656 | - strAux1 := ExtractShortPathName(v_Drive + v_File); | ||
| 657 | - if (strAux1 = '') then | ||
| 658 | - begin | ||
| 659 | - if (SearchFile(v_Drive,v_File)) then | ||
| 660 | - Begin | ||
| 661 | - strAux1 := v_Res_Search; | ||
| 662 | - break; | ||
| 663 | - End; | ||
| 664 | - end | ||
| 665 | - else break; | ||
| 666 | - End; | ||
| 667 | - if (strAux1 <> '') then | ||
| 668 | - Begin | ||
| 669 | - tstrTripa3 := Explode(getVersionInfo(strAux1), '.'); // Pego só os dois primeiros dígitos. Por exemplo: 6.640.0.1001 vira 6.640. | ||
| 670 | - strAux := strAux + tstrTripa3[0] + '.' + tstrTripa3[1]; | ||
| 671 | - End; | ||
| 672 | - End; | ||
| 673 | - | ||
| 674 | - //Coleta de Informação de Pattern | ||
| 675 | - //O ponto é proposital para quando o último parâmetro vem vazio do Gerente!!! :) | ||
| 676 | - strAux1 := ''; | ||
| 677 | - if (trim(tstrTripa2[10])<>'.') then //Arquivo para Versão de Pattern | ||
| 678 | - Begin | ||
| 679 | - for v1:=1 to length(v_LetrasDrives) do | ||
| 680 | - Begin | ||
| 681 | - v_File := trim(tstrTripa2[10]); | ||
| 682 | - if (LastPos(':\',v_File)>0) then | ||
| 683 | - Begin | ||
| 684 | - v_Drive := Copy(v_File,1,3); | ||
| 685 | - v_File := Copy(v_File,4,Length(v_File)); | ||
| 686 | - End | ||
| 687 | - else | ||
| 688 | - Begin | ||
| 689 | - v_Drive := v_LetrasDrives[v1] + ':'; | ||
| 690 | - if (Copy(v_File,1,1)<>'\') then v_Drive := v_Drive + '\'; | ||
| 691 | - v_File := Copy(v_File,1,Length(v_File)); | ||
| 692 | - End; | ||
| 693 | - | ||
| 694 | - strAux1 := ExtractShortPathName(v_Drive + v_File); | ||
| 695 | - if (strAux1 = '') then | ||
| 696 | - begin | ||
| 697 | - if (SearchFile(v_Drive, v_File)) then | ||
| 698 | - Begin | ||
| 699 | - strAux1 := v_Res_Search; | ||
| 700 | - break; | ||
| 701 | - End; | ||
| 702 | - end | ||
| 703 | - else break; | ||
| 704 | - | ||
| 705 | - End; | ||
| 706 | - End; | ||
| 707 | - if (strAux1 <> '') then | ||
| 708 | - Begin | ||
| 709 | - tstrTripa3 := Explode(getVersionInfo(strAux1), '.'); // Pego só os dois primeiros dígitos. Por exemplo: 6.640.0.1001 vira 6.640. | ||
| 710 | - strAux := strAux + tstrTripa3[0] + '.' + tstrTripa3[1]; | ||
| 711 | - End; | ||
| 712 | - if (strAux1 = '') then strAux := strAux + ','; | ||
| 713 | - strAux1 := ''; | ||
| 714 | - End; | ||
| 715 | - intAux4 := intAux4 + 1; | ||
| 716 | - End; | ||
| 717 | - ValorChaveColetado := Trim(GetValorChaveRegIni('Coleta','Sistemas_Monitorados', p_path_cacic + 'cacic2.ini')); | ||
| 718 | - If (GetValorChaveRegIni('Configs','IN_COLETA_FORCADA_MONI',p_path_cacic_ini)='S') or (trim(strAux) <> trim(ValorChaveColetado)) Then | ||
| 719 | - Begin | ||
| 720 | - if (trim(ValorChaveColetado) <> '') then | ||
| 721 | - begin | ||
| 722 | - v_array1 := Explode(strAux, '#'); | ||
| 723 | - strAux := ''; | ||
| 724 | - v_array3 := Explode(ValorChaveColetado, '#'); | ||
| 725 | - for v1 := 0 to (v_array1.count)-1 do | ||
| 726 | - Begin | ||
| 727 | - v_array2 := Explode(v_array1[v1], ','); | ||
| 728 | - v_achei := 0; | ||
| 729 | - for v3 := 0 to (v_array3.count)-1 do | ||
| 730 | - Begin | ||
| 731 | - v_array4 := Explode(v_array3[v3], ','); | ||
| 732 | - if (v_array4=v_array2) then v_achei := 1; | ||
| 733 | - End; | ||
| 734 | - if (v_achei = 0) then | ||
| 735 | - Begin | ||
| 736 | - if (strAUX <> '') then strAUX := strAUX + '#'; | ||
| 737 | - strAUX := strAUX + v_array1[v1]; | ||
| 738 | - End; | ||
| 739 | - End; | ||
| 740 | - end; | ||
| 741 | - frm_col_moni.SetValorChaveRegIni('Col_Moni','Sistemas_Monitorados', strAux,frm_col_moni.GetValorChaveRegIni('Configs','P_PATH_COLETAS_INI',p_path_cacic + 'cacic2.ini')+'col_moni.ini'); | ||
| 742 | - end | ||
| 743 | - else frm_col_moni.SetValorChaveRegIni('Col_Moni','nada', 'nada',frm_col_moni.GetValorChaveRegIni('Configs','P_PATH_COLETAS_INI',p_path_cacic + 'cacic2.ini')+'col_moni.ini'); | ||
| 744 | - application.Terminate; | ||
| 745 | - Except | ||
| 746 | - Begin | ||
| 747 | - frm_col_moni.SetValorChaveRegIni('Col_Moni','nada', 'nada',frm_col_moni.GetValorChaveRegIni('Configs','P_PATH_COLETAS_INI',p_path_cacic + 'cacic2.ini')+'col_moni.ini'); | ||
| 748 | - application.Terminate; | ||
| 749 | - End; | ||
| 750 | - End; | ||
| 751 | -END; | ||
| 752 | - | ||
| 753 | -procedure Tfrm_col_moni.FormCreate(Sender: TObject); | ||
| 754 | -var tstrTripa1 : TStrings; | ||
| 755 | - intAux : integer; | ||
| 756 | -begin | ||
| 757 | - | ||
| 758 | - //Pegarei o nível anterior do diretório, que deve ser, por exemplo \Cacic, para leitura do cacic2.ini | ||
| 759 | - tstrTripa1 := explode(ExtractFilePath(Application.Exename),'\'); | ||
| 760 | - p_path_cacic := ''; | ||
| 761 | - For intAux := 0 to tstrTripa1.Count -2 do | ||
| 762 | - begin | ||
| 763 | - p_path_cacic := p_path_cacic + tstrTripa1[intAux] + '\'; | ||
| 764 | - end; | ||
| 765 | - p_path_cacic_ini := p_path_cacic + 'cacic2.ini'; | ||
| 766 | - Application.ShowMainForm := false; | ||
| 767 | - | ||
| 768 | - Try | ||
| 769 | - Executa_Col_moni; | ||
| 770 | - Except | ||
| 771 | - frm_col_moni.SetValorChaveRegIni('Col_Moni','nada', 'nada',frm_col_moni.GetValorChaveRegIni('Configs','P_PATH_COLETAS_INI',p_path_cacic + 'cacic2.ini')+'col_moni.ini'); | ||
| 772 | - application.Terminate; | ||
| 773 | - End; | ||
| 774 | -end; | ||
| 775 | -end. | ||
| 776 | - |
col_undi/col_undi.dpr
| @@ -44,6 +44,8 @@ var p_path_cacic, | @@ -44,6 +44,8 @@ var p_path_cacic, | ||
| 44 | var v_tstrCipherOpened, | 44 | var v_tstrCipherOpened, |
| 45 | v_tstrCipherOpened1 : TStrings; | 45 | v_tstrCipherOpened1 : TStrings; |
| 46 | 46 | ||
| 47 | +var g_oCacic : TCACIC; | ||
| 48 | + | ||
| 47 | // Some constants that are dependant on the cipher being used | 49 | // Some constants that are dependant on the cipher being used |
| 48 | // Assuming MCRYPT_RIJNDAEL_128 (i.e., 128bit blocksize, 256bit keysize) | 50 | // Assuming MCRYPT_RIJNDAEL_128 (i.e., 128bit blocksize, 256bit keysize) |
| 49 | const KeySize = 32; // 32 bytes = 256 bits | 51 | const KeySize = 32; // 32 bytes = 256 bits |
| @@ -199,14 +201,9 @@ begin | @@ -199,14 +201,9 @@ begin | ||
| 199 | // Criação do arquivo .DAT | 201 | // Criação do arquivo .DAT |
| 200 | Rewrite (v_DatFile); | 202 | Rewrite (v_DatFile); |
| 201 | Append(v_DatFile); | 203 | Append(v_DatFile); |
| 202 | - | ||
| 203 | - //v_Cipher := TDCP_rijndael.Create(nil); | ||
| 204 | - //v_Cipher.InitStr(v_CipherKey,TDCP_md5); | 204 | + |
| 205 | v_strCipherOpenImploded := Implode(p_tstrCipherOpened,'=CacicIsFree='); | 205 | v_strCipherOpenImploded := Implode(p_tstrCipherOpened,'=CacicIsFree='); |
| 206 | v_strCipherClosed := EnCrypt(v_strCipherOpenImploded); | 206 | v_strCipherClosed := EnCrypt(v_strCipherOpenImploded); |
| 207 | - //v_strCipherClosed := v_Cipher.EncryptString(v_strCipherOpenImploded); | ||
| 208 | - //v_Cipher.Burn; | ||
| 209 | - //v_Cipher.Free; | ||
| 210 | 207 | ||
| 211 | Writeln(v_DatFile,v_strCipherClosed); {Grava a string Texto no arquivo texto} | 208 | Writeln(v_DatFile,v_strCipherClosed); {Grava a string Texto no arquivo texto} |
| 212 | 209 | ||
| @@ -244,66 +241,6 @@ Begin | @@ -244,66 +241,6 @@ Begin | ||
| 244 | Explode := ListaAuxUTILS; | 241 | Explode := ListaAuxUTILS; |
| 245 | end; | 242 | end; |
| 246 | 243 | ||
| 247 | - | ||
| 248 | -function GetWinVer: Integer; | ||
| 249 | -const | ||
| 250 | - { operating system (OS)constants } | ||
| 251 | - cOsUnknown = 0; | ||
| 252 | - cOsWin95 = 1; | ||
| 253 | - cOsWin95OSR2 = 2; // Não implementado. | ||
| 254 | - cOsWin98 = 3; | ||
| 255 | - cOsWin98SE = 4; | ||
| 256 | - cOsWinME = 5; | ||
| 257 | - cOsWinNT = 6; | ||
| 258 | - cOsWin2000 = 7; | ||
| 259 | - cOsXP = 8; | ||
| 260 | -var | ||
| 261 | - osVerInfo: TOSVersionInfo; | ||
| 262 | - majorVer, minorVer: Integer; | ||
| 263 | -begin | ||
| 264 | - Result := cOsUnknown; | ||
| 265 | - { set operating system type flag } | ||
| 266 | - osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); | ||
| 267 | - if GetVersionEx(osVerInfo) then | ||
| 268 | - begin | ||
| 269 | - majorVer := osVerInfo.dwMajorVersion; | ||
| 270 | - minorVer := osVerInfo.dwMinorVersion; | ||
| 271 | - case osVerInfo.dwPlatformId of | ||
| 272 | - VER_PLATFORM_WIN32_NT: { Windows NT/2000 } | ||
| 273 | - begin | ||
| 274 | - if majorVer <= 4 then | ||
| 275 | - Result := cOsWinNT | ||
| 276 | - else if (majorVer = 5) and (minorVer = 0) then | ||
| 277 | - Result := cOsWin2000 | ||
| 278 | - else if (majorVer = 5) and (minorVer = 1) then | ||
| 279 | - Result := cOsXP | ||
| 280 | - else | ||
| 281 | - Result := cOsUnknown; | ||
| 282 | - end; | ||
| 283 | - VER_PLATFORM_WIN32_WINDOWS: { Windows 9x/ME } | ||
| 284 | - begin | ||
| 285 | - if (majorVer = 4) and (minorVer = 0) then | ||
| 286 | - Result := cOsWin95 | ||
| 287 | - else if (majorVer = 4) and (minorVer = 10) then | ||
| 288 | - begin | ||
| 289 | - if osVerInfo.szCSDVersion[1] = 'A' then | ||
| 290 | - Result := cOsWin98SE | ||
| 291 | - else | ||
| 292 | - Result := cOsWin98; | ||
| 293 | - end | ||
| 294 | - else if (majorVer = 4) and (minorVer = 90) then | ||
| 295 | - Result := cOsWinME | ||
| 296 | - else | ||
| 297 | - Result := cOsUnknown; | ||
| 298 | - end; | ||
| 299 | - else | ||
| 300 | - Result := cOsUnknown; | ||
| 301 | - end; | ||
| 302 | - end | ||
| 303 | - else | ||
| 304 | - Result := cOsUnknown; | ||
| 305 | -end; | ||
| 306 | - | ||
| 307 | Function CipherOpen(p_DatFileName : string) : TStrings; | 244 | Function CipherOpen(p_DatFileName : string) : TStrings; |
| 308 | var v_DatFile : TextFile; | 245 | var v_DatFile : TextFile; |
| 309 | v_strCipherOpened, | 246 | v_strCipherOpened, |
| @@ -330,7 +267,7 @@ begin | @@ -330,7 +267,7 @@ begin | ||
| 330 | if (trim(v_strCipherOpened)<>'') then | 267 | if (trim(v_strCipherOpened)<>'') then |
| 331 | Result := explode(v_strCipherOpened,'=CacicIsFree=') | 268 | Result := explode(v_strCipherOpened,'=CacicIsFree=') |
| 332 | else | 269 | else |
| 333 | - Result := explode('Configs.ID_SO=CacicIsFree='+inttostr(GetWinVer)+'=CacicIsFree=Configs.Endereco_WS=CacicIsFree=/cacic2/ws/','=CacicIsFree='); | 270 | + Result := explode('Configs.ID_SO=CacicIsFree='+ g_oCacic.getWindowsStrId() +'=CacicIsFree=Configs.Endereco_WS=CacicIsFree=/cacic2/ws/','=CacicIsFree='); |
| 334 | 271 | ||
| 335 | if Result.Count mod 2 <> 0 then | 272 | if Result.Count mod 2 <> 0 then |
| 336 | Result.Add(''); | 273 | Result.Add(''); |
| @@ -346,9 +283,8 @@ begin | @@ -346,9 +283,8 @@ begin | ||
| 346 | p_tstrCipherOpened.Add(p_Chave); | 283 | p_tstrCipherOpened.Add(p_Chave); |
| 347 | p_tstrCipherOpened.Add(p_Valor); | 284 | p_tstrCipherOpened.Add(p_Valor); |
| 348 | End; | 285 | End; |
| 349 | -//DEBUG | ||
| 350 | -//log_diario('Gravando: '+p_Chave +' => '+p_Valor); | ||
| 351 | end; | 286 | end; |
| 287 | + | ||
| 352 | Function GetValorDatMemoria(p_Chave : String; p_tstrCipherOpened : TStrings) : String; | 288 | Function GetValorDatMemoria(p_Chave : String; p_tstrCipherOpened : TStrings) : String; |
| 353 | begin | 289 | begin |
| 354 | if (p_tstrCipherOpened.IndexOf(p_Chave)<>-1) then | 290 | if (p_tstrCipherOpened.IndexOf(p_Chave)<>-1) then |
| @@ -357,7 +293,6 @@ begin | @@ -357,7 +293,6 @@ begin | ||
| 357 | Result := ''; | 293 | Result := ''; |
| 358 | end; | 294 | end; |
| 359 | 295 | ||
| 360 | - | ||
| 361 | function GetFolderDate(Folder: string): TDateTime; | 296 | function GetFolderDate(Folder: string): TDateTime; |
| 362 | var | 297 | var |
| 363 | Rec: TSearchRec; | 298 | Rec: TSearchRec; |
| @@ -379,8 +314,6 @@ begin | @@ -379,8 +314,6 @@ begin | ||
| 379 | end; | 314 | end; |
| 380 | end; | 315 | end; |
| 381 | 316 | ||
| 382 | - | ||
| 383 | - | ||
| 384 | function GetRootKey(strRootKey: String): HKEY; | 317 | function GetRootKey(strRootKey: String): HKEY; |
| 385 | begin | 318 | begin |
| 386 | /// Encontrar uma maneira mais elegante de fazer esses testes. | 319 | /// Encontrar uma maneira mais elegante de fazer esses testes. |
| @@ -446,8 +379,6 @@ begin | @@ -446,8 +379,6 @@ begin | ||
| 446 | end; | 379 | end; |
| 447 | end; | 380 | end; |
| 448 | 381 | ||
| 449 | - | ||
| 450 | - | ||
| 451 | procedure Grava_Debugs(strMsg : String); | 382 | procedure Grava_Debugs(strMsg : String); |
| 452 | var | 383 | var |
| 453 | DebugsFile : TextFile; | 384 | DebugsFile : TextFile; |
| @@ -597,12 +528,11 @@ const | @@ -597,12 +528,11 @@ const | ||
| 597 | var | 528 | var |
| 598 | tstrTripa1 : TStrings; | 529 | tstrTripa1 : TStrings; |
| 599 | intAux : integer; | 530 | intAux : integer; |
| 600 | - oCacic : TCACIC; | ||
| 601 | 531 | ||
| 602 | begin | 532 | begin |
| 603 | - oCacic := TCACIC.Create(); | 533 | + g_oCacic := TCACIC.Create(); |
| 604 | 534 | ||
| 605 | - if( not oCacic.isAppRunning( CACIC_APP_NAME ) ) then | 535 | + if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then |
| 606 | if (ParamCount>0) then | 536 | if (ParamCount>0) then |
| 607 | Begin | 537 | Begin |
| 608 | For intAux := 1 to ParamCount do | 538 | For intAux := 1 to ParamCount do |
| @@ -650,6 +580,6 @@ begin | @@ -650,6 +580,6 @@ begin | ||
| 650 | End; | 580 | End; |
| 651 | End; | 581 | End; |
| 652 | 582 | ||
| 653 | - oCacic.Free(); | 583 | + g_oCacic.Free(); |
| 654 | 584 | ||
| 655 | end. | 585 | end. |
ger_cols/ger_cols.dpr
| @@ -330,12 +330,6 @@ Begin | @@ -330,12 +330,6 @@ Begin | ||
| 330 | End; | 330 | End; |
| 331 | Implode := strAux; | 331 | Implode := strAux; |
| 332 | end; | 332 | end; |
| 333 | -function abstraiCSD(p_te_so : String) : integer; | ||
| 334 | - var tstrTe_so : tstrings; | ||
| 335 | - Begin | ||
| 336 | - tstrTe_so := Explode(p_te_so, '.'); | ||
| 337 | - Result := StrToInt(tstrTe_so[0] + tstrTe_so[1] + tstrTe_so[2]); | ||
| 338 | - End; | ||
| 339 | 333 | ||
| 340 | Procedure SetValorDatMemoria(p_Chave : string; p_Valor : String; p_tstrCipherOpened : TStrings); | 334 | Procedure SetValorDatMemoria(p_Chave : string; p_Valor : String; p_tstrCipherOpened : TStrings); |
| 341 | var v_Aux : string; | 335 | var v_Aux : string; |
| @@ -458,89 +452,6 @@ begin | @@ -458,89 +452,6 @@ begin | ||
| 458 | End; | 452 | End; |
| 459 | end; | 453 | end; |
| 460 | 454 | ||
| 461 | -function GetWinVer: Integer; | ||
| 462 | -const | ||
| 463 | - { operating system (OS)constants } | ||
| 464 | - cOsUnknown = 0; | ||
| 465 | - cOsWin95 = 1; | ||
| 466 | - cOsWin95OSR2 = 2; // Não implementado. | ||
| 467 | - cOsWin98 = 3; | ||
| 468 | - cOsWin98SE = 4; | ||
| 469 | - cOsWinME = 5; | ||
| 470 | - cOsWinNT = 6; | ||
| 471 | - cOsWin2000 = 7; | ||
| 472 | - cOsXP = 8; | ||
| 473 | - cOsWinServer2003 = 13; | ||
| 474 | -var | ||
| 475 | - osVerInfo: TOSVersionInfo; | ||
| 476 | - platformID, | ||
| 477 | - majorVer, | ||
| 478 | - minorVer : Integer; | ||
| 479 | - CSDVersion : String; | ||
| 480 | -begin | ||
| 481 | - Result := cOsUnknown; | ||
| 482 | - { set operating system type flag } | ||
| 483 | - osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); | ||
| 484 | - if GetVersionEx(osVerInfo) then | ||
| 485 | - begin | ||
| 486 | - platformId := osVerInfo.dwPlatformId; | ||
| 487 | - majorVer := osVerInfo.dwMajorVersion; | ||
| 488 | - minorVer := osVerInfo.dwMinorVersion; | ||
| 489 | - CSDVersion := trim(osVerInfo.szCSDVersion); | ||
| 490 | - | ||
| 491 | - case osVerInfo.dwPlatformId of | ||
| 492 | - VER_PLATFORM_WIN32_NT: {Windows NT Like} | ||
| 493 | - begin | ||
| 494 | - if majorVer <= 4 then | ||
| 495 | - Result := cOsWinNT | ||
| 496 | - else if (majorVer = 5) and (minorVer = 0) then | ||
| 497 | - Result := cOsWin2000 | ||
| 498 | - else if (majorVer = 5) and (minorVer = 1) then | ||
| 499 | - Result := cOsXP | ||
| 500 | - else if (majorVer = 5) and (minorVer = 2) then | ||
| 501 | - Result := cOsWinServer2003 | ||
| 502 | - else | ||
| 503 | - Result := cOsUnknown; | ||
| 504 | - | ||
| 505 | - end; | ||
| 506 | - VER_PLATFORM_WIN32_WINDOWS: { Windows 9x/ME } | ||
| 507 | - begin | ||
| 508 | - if (majorVer = 4) and (minorVer = 0) then | ||
| 509 | - Result := cOsWin95 | ||
| 510 | - else if (majorVer = 4) and (minorVer = 10) then | ||
| 511 | - begin | ||
| 512 | - if osVerInfo.szCSDVersion[1] = 'A' then | ||
| 513 | - Result := cOsWin98SE | ||
| 514 | - else | ||
| 515 | - Result := cOsWin98; | ||
| 516 | - end | ||
| 517 | - else if (majorVer = 4) and (minorVer = 90) then | ||
| 518 | - Result := cOsWinME | ||
| 519 | - else | ||
| 520 | - Result := cOsUnknown; | ||
| 521 | - | ||
| 522 | - end; | ||
| 523 | - | ||
| 524 | - else | ||
| 525 | - Result := cOsUnknown; | ||
| 526 | - end; | ||
| 527 | - end | ||
| 528 | - else | ||
| 529 | - Result := cOsUnknown; | ||
| 530 | - | ||
| 531 | - // A partir da versão 2.2.0.24, defino o valor da ID Interna e atribuo-a sem o CSDVersion à versão externa | ||
| 532 | - v_te_so := IntToStr(platformId) + '.' + | ||
| 533 | - IntToStr(majorVer) + '.' + | ||
| 534 | - IntToStr(minorVer) + | ||
| 535 | - ifThen(CSDVersion='','','.'+CSDVersion); | ||
| 536 | - | ||
| 537 | - { | ||
| 538 | - Forço o envio do identificador interno | ||
| 539 | - if (Result = 0) then | ||
| 540 | - } | ||
| 541 | - Result := abstraiCSD(v_te_so); | ||
| 542 | -end; | ||
| 543 | - | ||
| 544 | procedure Matar(v_dir,v_files: string); | 455 | procedure Matar(v_dir,v_files: string); |
| 545 | var SearchRec: TSearchRec; | 456 | var SearchRec: TSearchRec; |
| 546 | Result: Integer; | 457 | Result: Integer; |
| @@ -639,7 +550,7 @@ begin | @@ -639,7 +550,7 @@ begin | ||
| 639 | if (trim(v_strCipherOpened)<>'') then | 550 | if (trim(v_strCipherOpened)<>'') then |
| 640 | Result := explode(v_strCipherOpened,'=CacicIsFree=') | 551 | Result := explode(v_strCipherOpened,'=CacicIsFree=') |
| 641 | else | 552 | else |
| 642 | - Result := explode('Configs.ID_SO=CacicIsFree='+inttostr(GetWinVer)+'=CacicIsFree=Configs.Endereco_WS=CacicIsFree=/cacic2/ws/','=CacicIsFree='); | 553 | + Result := explode('Configs.ID_SO=CacicIsFree='+g_oCacic.getWindowsStrId()+'=CacicIsFree=Configs.Endereco_WS=CacicIsFree=/cacic2/ws/','=CacicIsFree='); |
| 643 | 554 | ||
| 644 | if Result.Count mod 2 = 0 then | 555 | if Result.Count mod 2 = 0 then |
| 645 | Result.Add(''); | 556 | Result.Add(''); |
| @@ -1215,8 +1126,6 @@ Function ComunicaServidor(URL : String; Request : TStringList; MsgAcao: String) | @@ -1215,8 +1126,6 @@ Function ComunicaServidor(URL : String; Request : TStringList; MsgAcao: String) | ||
| 1215 | var Response_CS : TStringStream; | 1126 | var Response_CS : TStringStream; |
| 1216 | strEndereco, | 1127 | strEndereco, |
| 1217 | v_Endereco_WS, | 1128 | v_Endereco_WS, |
| 1218 | - v_Aux, | ||
| 1219 | - v_Aux1, | ||
| 1220 | strAux : String; | 1129 | strAux : String; |
| 1221 | idHTTP1 : TIdHTTP; | 1130 | idHTTP1 : TIdHTTP; |
| 1222 | intAux : integer; | 1131 | intAux : integer; |
| @@ -1231,13 +1140,12 @@ Begin | @@ -1231,13 +1140,12 @@ Begin | ||
| 1231 | // A partir da versão 2.0.2.18+ envio um Classificador indicativo de dados compactados... | 1140 | // A partir da versão 2.0.2.18+ envio um Classificador indicativo de dados compactados... |
| 1232 | v_AuxRequest.Values['cs_compress'] := GetValorDatMemoria('Configs.CS_COMPRESS',v_tstrCipherOpened); | 1141 | v_AuxRequest.Values['cs_compress'] := GetValorDatMemoria('Configs.CS_COMPRESS',v_tstrCipherOpened); |
| 1233 | 1142 | ||
| 1234 | - intAux := GetWinVer; | ||
| 1235 | strAux := GetValorDatMemoria('TcpIp.TE_IP', v_tstrCipherOpened); | 1143 | strAux := GetValorDatMemoria('TcpIp.TE_IP', v_tstrCipherOpened); |
| 1236 | if (strAux = '') then | 1144 | if (strAux = '') then |
| 1237 | strAux := 'A.B.C.D'; // Apenas para forçar que o Gerente extraia via _SERVER[REMOTE_ADDR] | 1145 | strAux := 'A.B.C.D'; // Apenas para forçar que o Gerente extraia via _SERVER[REMOTE_ADDR] |
| 1238 | 1146 | ||
| 1239 | v_AuxRequest.Values['te_node_address'] := StringReplace(EnCrypt(GetValorDatMemoria('TcpIp.TE_NODE_ADDRESS' , v_tstrCipherOpened),l_cs_compress),'+','<MAIS>',[rfReplaceAll]); | 1147 | v_AuxRequest.Values['te_node_address'] := StringReplace(EnCrypt(GetValorDatMemoria('TcpIp.TE_NODE_ADDRESS' , v_tstrCipherOpened),l_cs_compress),'+','<MAIS>',[rfReplaceAll]); |
| 1240 | - v_AuxRequest.Values['id_so'] := StringReplace(EnCrypt(IntToStr(intAux) ,l_cs_compress),'+','<MAIS>',[rfReplaceAll]); | 1148 | + v_AuxRequest.Values['id_so'] := StringReplace(EnCrypt(g_oCacic.getWindowsStrId() , l_cs_compress),'+','<MAIS>',[rfReplaceAll]); |
| 1241 | // Tratamentos de valores para tráfego POST: | 1149 | // Tratamentos de valores para tráfego POST: |
| 1242 | // v_te_so => transformar ' ' em <ESPACE> Razão: o mmcrypt se perde quando encontra ' ' (espaço) | 1150 | // v_te_so => transformar ' ' em <ESPACE> Razão: o mmcrypt se perde quando encontra ' ' (espaço) |
| 1243 | //v_te_so := StringReplace(v_te_so,' ','<ESPACE>',[rfReplaceAll]); | 1151 | //v_te_so := StringReplace(v_te_so,' ','<ESPACE>',[rfReplaceAll]); |
| @@ -1792,7 +1700,8 @@ procedure Patrimnio1Click(Sender: TObject); | @@ -1792,7 +1700,8 @@ procedure Patrimnio1Click(Sender: TObject); | ||
| 1792 | begin | 1700 | begin |
| 1793 | SetValorDatMemoria('Patrimonio.dt_ultima_renovacao_patrim','', v_tstrCipherOpened); | 1701 | SetValorDatMemoria('Patrimonio.dt_ultima_renovacao_patrim','', v_tstrCipherOpened); |
| 1794 | if ChecaAgente(p_path_cacic + 'modulos', 'ini_cols.exe') then | 1702 | if ChecaAgente(p_path_cacic + 'modulos', 'ini_cols.exe') then |
| 1795 | - WinExec(PChar(p_path_cacic + 'modulos\ini_cols.exe /p_CipherKey='+v_CipherKey+ ' /p_ModulosOpcoes=col_patr,wait,user#'),SW_HIDE); | 1703 | + g_oCacic.createSampleProcess( p_path_cacic + 'modulos\ini_cols.exe /p_CipherKey=' + v_CipherKey + |
| 1704 | + ' /p_ModulosOpcoes=col_patr,wait,user#', CACIC_PROCESS_WAIT ); | ||
| 1796 | end; | 1705 | end; |
| 1797 | 1706 | ||
| 1798 | procedure ChecaCipher; | 1707 | procedure ChecaCipher; |
| @@ -2929,8 +2838,8 @@ Begin | @@ -2929,8 +2838,8 @@ Begin | ||
| 2929 | Finalizar(false); | 2838 | Finalizar(false); |
| 2930 | Matar(p_path_cacic + 'temp\','*.dat'); | 2839 | Matar(p_path_cacic + 'temp\','*.dat'); |
| 2931 | CriaTXT(p_path_cacic+'temp','coletas'); | 2840 | CriaTXT(p_path_cacic+'temp','coletas'); |
| 2932 | - WinExec(PChar(p_path_cacic + 'modulos\ini_cols.exe /p_CipherKey='+v_CipherKey+' /p_ModulosOpcoes='+v_ModulosOpcoes), SW_HIDE); | ||
| 2933 | - Sair; | 2841 | + g_oCacic.createSampleProcess( p_path_cacic + 'modulos\ini_cols.exe /p_CipherKey=' + v_CipherKey + |
| 2842 | + ' /p_ModulosOpcoes=' + v_ModulosOpcoes, CACIC_PROCESS_WAIT ); | ||
| 2934 | End; | 2843 | End; |
| 2935 | 2844 | ||
| 2936 | end | 2845 | end |
| @@ -3326,9 +3235,11 @@ Begin | @@ -3326,9 +3235,11 @@ Begin | ||
| 3326 | 3235 | ||
| 3327 | if (intAux = 0) then | 3236 | if (intAux = 0) then |
| 3328 | log_diario('Sem informações para envio ao Gerente WEB.') | 3237 | log_diario('Sem informações para envio ao Gerente WEB.') |
| 3329 | - // Atualizo a data de última coleta | ||
| 3330 | - else | 3238 | + else begin |
| 3239 | + // Atualiza a data de última coleta | ||
| 3331 | SetValorDatMemoria('Configs.DT_HR_ULTIMA_COLETA',FormatDateTime('YYYYmmddHHnnss', Now), v_tstrCipherOpened); | 3240 | SetValorDatMemoria('Configs.DT_HR_ULTIMA_COLETA',FormatDateTime('YYYYmmddHHnnss', Now), v_tstrCipherOpened); |
| 3241 | + log_diario('Todos os dados coletados foram enviados ao Gerente WEB.'); | ||
| 3242 | + end; | ||
| 3332 | end; | 3243 | end; |
| 3333 | Except | 3244 | Except |
| 3334 | Begin | 3245 | Begin |
| @@ -3398,7 +3309,7 @@ begin | @@ -3398,7 +3309,7 @@ begin | ||
| 3398 | v_tstrCipherOpened := CipherOpen(v_DatFileName); | 3309 | v_tstrCipherOpened := CipherOpen(v_DatFileName); |
| 3399 | 3310 | ||
| 3400 | // Não tirar desta posição | 3311 | // Não tirar desta posição |
| 3401 | - SetValorDatMemoria('Configs.ID_SO',IntToStr(GetWinVer), v_tstrCipherOpened); | 3312 | + SetValorDatMemoria('Configs.ID_SO',g_oCacic.getWindowsStrId(), v_tstrCipherOpened); |
| 3402 | 3313 | ||
| 3403 | v_scripter := 'wscript.exe'; | 3314 | v_scripter := 'wscript.exe'; |
| 3404 | // A existência e bloqueio do arquivo abaixo evitará que Cacic2.exe chame o Ger_Cols quando este estiver em funcionamento | 3315 | // A existência e bloqueio do arquivo abaixo evitará que Cacic2.exe chame o Ger_Cols quando este estiver em funcionamento |
ini_cols/ini_cols.dpr
| @@ -518,36 +518,8 @@ begin | @@ -518,36 +518,8 @@ begin | ||
| 518 | v_Aux := v_tstrModuloOpcao[0]+'.exe /p_CipherKey='+v_CipherKey+ ' /p_Option='+v_tstrModuloOpcao[2]; | 518 | v_Aux := v_tstrModuloOpcao[0]+'.exe /p_CipherKey='+v_CipherKey+ ' /p_Option='+v_tstrModuloOpcao[2]; |
| 519 | log_DEBUG('Chamando "' + v_tstrModuloOpcao[0]+'.exe /p_CipherKey=*****" /p_Option='+v_tstrModuloOpcao[2]); | 519 | log_DEBUG('Chamando "' + v_tstrModuloOpcao[0]+'.exe /p_CipherKey=*****" /p_Option='+v_tstrModuloOpcao[2]); |
| 520 | 520 | ||
| 521 | - WinExec(PChar(v_Aux), SW_HIDE); | ||
| 522 | - | ||
| 523 | - if (v_tstrModuloOpcao[1]='wait') then | ||
| 524 | - while not FileExists(p_path_cacic + 'temp\'+v_tstrModuloOpcao[0]+'.dat') do | ||
| 525 | - Sleep(2000) | ||
| 526 | - else | ||
| 527 | - Begin | ||
| 528 | - v_ContaTempo := 0; | ||
| 529 | - while not FileExists(p_path_cacic + 'temp\'+v_tstrModuloOpcao[0]+'.dat') and | ||
| 530 | - ((v_ContaTempo/60)< v_Tolerancia) do // Tolerância para a coleta | ||
| 531 | - Begin | ||
| 532 | - Sleep(2000); | ||
| 533 | - v_ContaTempo := v_ContaTempo + 2; | ||
| 534 | - End; | ||
| 535 | - End; | ||
| 536 | - End; | 521 | + oCacic.createSampleProcess( p_path_cacic + '\modulos\' + v_aux, CACIC_PROCESS_WAIT ); |
| 537 | 522 | ||
| 538 | - For intAux := 0 to v_tstrModulosOpcoes.Count -1 do | ||
| 539 | - Begin | ||
| 540 | - v_tstrModuloOpcao := explode(v_tstrModulosOpcoes[intAux],','); | ||
| 541 | - v_Aux := p_path_cacic + 'temp\'+v_tstrModuloOpcao[0]+'.dat'; | ||
| 542 | - if (FileExists(v_Aux)) then | ||
| 543 | - Begin | ||
| 544 | - log_DEBUG('Chamando "'+'ger_cols.exe /p_CipherKey=*****'); | ||
| 545 | - WinExec(PChar('ger_cols.exe /p_CipherKey='+v_CipherKey), SW_HIDE); | ||
| 546 | - // Fecha o arquivo temp\aguarde_INI.txt | ||
| 547 | - CloseFile(v_Aguarde); | ||
| 548 | - Matar(p_path_cacic+'temp\','aguarde_INI'); | ||
| 549 | - break; | ||
| 550 | - End; | ||
| 551 | End; | 523 | End; |
| 552 | except | 524 | except |
| 553 | end; | 525 | end; |
mapa/main_mapa.pas
| @@ -43,17 +43,18 @@ uses IniFiles, | @@ -43,17 +43,18 @@ uses IniFiles, | ||
| 43 | DCPbase64, | 43 | DCPbase64, |
| 44 | ExtCtrls, | 44 | ExtCtrls, |
| 45 | Graphics, | 45 | Graphics, |
| 46 | - Dialogs; | 46 | + Dialogs, |
| 47 | + CACIC_Library; | ||
| 47 | 48 | ||
| 48 | var strCipherClosed, | 49 | var strCipherClosed, |
| 49 | strCipherOpened, | 50 | strCipherOpened, |
| 50 | - strPathCacic, | ||
| 51 | - str_te_so : string; | 51 | + strPathCacic : string; |
| 52 | 52 | ||
| 53 | var intPausaPadrao : integer; | 53 | var intPausaPadrao : integer; |
| 54 | 54 | ||
| 55 | var boolDebugs : boolean; | 55 | var boolDebugs : boolean; |
| 56 | 56 | ||
| 57 | +var g_oCacic : TCACIC; | ||
| 57 | 58 | ||
| 58 | // Some constants that are dependant on the cipher being used | 59 | // Some constants that are dependant on the cipher being used |
| 59 | // Assuming MCRYPT_RIJNDAEL_128 (i.e., 128bit blocksize, 256bit keysize) | 60 | // Assuming MCRYPT_RIJNDAEL_128 (i.e., 128bit blocksize, 256bit keysize) |
| @@ -111,7 +112,6 @@ type | @@ -111,7 +112,6 @@ type | ||
| 111 | function HomeDrive : string; | 112 | function HomeDrive : string; |
| 112 | Function Implode(p_Array : TStrings ; p_Separador : String) : String; | 113 | Function Implode(p_Array : TStrings ; p_Separador : String) : String; |
| 113 | Function CipherClose(p_DatFileName : string; p_tstrCipherOpened : TStrings) : String; | 114 | Function CipherClose(p_DatFileName : string; p_tstrCipherOpened : TStrings) : String; |
| 114 | - function GetWinVer: Integer; | ||
| 115 | Function Explode(Texto, Separador : String) : TStrings; | 115 | Function Explode(Texto, Separador : String) : TStrings; |
| 116 | Function CipherOpen(p_DatFileName : string) : TStrings; | 116 | Function CipherOpen(p_DatFileName : string) : TStrings; |
| 117 | Function GetValorDatMemoria(p_Chave : String; p_tstrCipherOpened : TStrings) : String; | 117 | Function GetValorDatMemoria(p_Chave : String; p_tstrCipherOpened : TStrings) : String; |
| @@ -456,9 +456,8 @@ end; | @@ -456,9 +456,8 @@ end; | ||
| 456 | 456 | ||
| 457 | procedure TfrmMapaCacic.Sair; | 457 | procedure TfrmMapaCacic.Sair; |
| 458 | Begin | 458 | Begin |
| 459 | - application.Terminate; | ||
| 460 | -// FreeMemory(0); | ||
| 461 | -// Halt(0); | 459 | + g_oCacic.Free(); |
| 460 | + Application.Terminate; | ||
| 462 | End; | 461 | End; |
| 463 | 462 | ||
| 464 | procedure TfrmMapaCacic.Finalizar(p_pausa:boolean); | 463 | procedure TfrmMapaCacic.Finalizar(p_pausa:boolean); |
| @@ -818,79 +817,6 @@ begin | @@ -818,79 +817,6 @@ begin | ||
| 818 | except | 817 | except |
| 819 | end; | 818 | end; |
| 820 | end; | 819 | end; |
| 821 | -function TfrmMapaCacic.GetWinVer: Integer; | ||
| 822 | -const | ||
| 823 | - { operating system (OS)constants } | ||
| 824 | - cOsUnknown = 0; | ||
| 825 | - cOsWin95 = 1; | ||
| 826 | - cOsWin95OSR2 = 2; // Não implementado. | ||
| 827 | - cOsWin98 = 3; | ||
| 828 | - cOsWin98SE = 4; | ||
| 829 | - cOsWinME = 5; | ||
| 830 | - cOsWinNT = 6; | ||
| 831 | - cOsWin2000 = 7; | ||
| 832 | - cOsXP = 8; | ||
| 833 | - | ||
| 834 | -var | ||
| 835 | - osVerInfo: TOSVersionInfo; | ||
| 836 | - platformID, | ||
| 837 | - majorVer, | ||
| 838 | - minorVer: Integer; | ||
| 839 | - CSDVersion : String; | ||
| 840 | -begin | ||
| 841 | - Result := cOsUnknown; | ||
| 842 | - { set operating system type flag } | ||
| 843 | - osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); | ||
| 844 | - if GetVersionEx(osVerInfo) then | ||
| 845 | - begin | ||
| 846 | - platformId := osVerInfo.dwPlatformId; | ||
| 847 | - majorVer := osVerInfo.dwMajorVersion; | ||
| 848 | - minorVer := osVerInfo.dwMinorVersion; | ||
| 849 | - CSDVersion := trim(osVerInfo.szCSDVersion); | ||
| 850 | - | ||
| 851 | - case osVerInfo.dwPlatformId of | ||
| 852 | - VER_PLATFORM_WIN32_NT: { Windows NT/2000 } | ||
| 853 | - begin | ||
| 854 | - if majorVer <= 4 then | ||
| 855 | - Result := cOsWinNT | ||
| 856 | - else if (majorVer = 5) and (minorVer = 0) then | ||
| 857 | - Result := cOsWin2000 | ||
| 858 | - else if (majorVer = 5) and (minorVer = 1) then | ||
| 859 | - Result := cOsXP | ||
| 860 | - else | ||
| 861 | - Result := cOsUnknown; | ||
| 862 | - end; | ||
| 863 | - VER_PLATFORM_WIN32_WINDOWS: { Windows 9x/ME } | ||
| 864 | - begin | ||
| 865 | - if (majorVer = 4) and (minorVer = 0) then | ||
| 866 | - Result := cOsWin95 | ||
| 867 | - else if (majorVer = 4) and (minorVer = 10) then | ||
| 868 | - begin | ||
| 869 | - if osVerInfo.szCSDVersion[1] = 'A' then | ||
| 870 | - Result := cOsWin98SE | ||
| 871 | - else | ||
| 872 | - Result := cOsWin98; | ||
| 873 | - end | ||
| 874 | - else if (majorVer = 4) and (minorVer = 90) then | ||
| 875 | - Result := cOsWinME | ||
| 876 | - else | ||
| 877 | - Result := cOsUnknown; | ||
| 878 | - end; | ||
| 879 | - else | ||
| 880 | - Result := cOsUnknown; | ||
| 881 | - end; | ||
| 882 | - end | ||
| 883 | - else | ||
| 884 | - Result := cOsUnknown; | ||
| 885 | - | ||
| 886 | - // Defino o valor da ID Interna | ||
| 887 | - str_te_so := IntToStr(platformId) + '.' + | ||
| 888 | - IntToStr(majorVer) + '.' + | ||
| 889 | - IntToStr(minorVer) + | ||
| 890 | - IfThen(CSDVersion='','','.'+CSDVersion); | ||
| 891 | - | ||
| 892 | -end; | ||
| 893 | - | ||
| 894 | 820 | ||
| 895 | Function TfrmMapaCacic.CipherOpen(p_DatFileName : string) : TStrings; | 821 | Function TfrmMapaCacic.CipherOpen(p_DatFileName : string) : TStrings; |
| 896 | var v_DatFile : TextFile; | 822 | var v_DatFile : TextFile; |
| @@ -919,7 +845,7 @@ begin | @@ -919,7 +845,7 @@ begin | ||
| 919 | if (trim(strCipherOpened)<>'') then | 845 | if (trim(strCipherOpened)<>'') then |
| 920 | Result := explode(strCipherOpened,'=CacicIsFree=') | 846 | Result := explode(strCipherOpened,'=CacicIsFree=') |
| 921 | else | 847 | else |
| 922 | - Result := explode('Configs.ID_SO=CacicIsFree='+inttostr(GetWinVer)+'=CacicIsFree=Configs.Endereco_WS=CacicIsFree=/cacic2/ws/','=CacicIsFree='); | 848 | + Result := explode('Configs.ID_SO=CacicIsFree='+ g_oCacic.getWindowsStrId() +'=CacicIsFree=Configs.Endereco_WS=CacicIsFree=/cacic2/ws/','=CacicIsFree='); |
| 923 | 849 | ||
| 924 | if Result.Count mod 2 = 0 then | 850 | if Result.Count mod 2 = 0 then |
| 925 | Result.Add(''); | 851 | Result.Add(''); |
| @@ -1388,25 +1314,13 @@ begin | @@ -1388,25 +1314,13 @@ begin | ||
| 1388 | 1314 | ||
| 1389 | tstrAux.Free; | 1315 | tstrAux.Free; |
| 1390 | 1316 | ||
| 1391 | -// Assim, o envio será incondicional! - 01/12/2006 - Anderson Peterle | ||
| 1392 | -// if (strAux1 <> strId_unid_organizacional_nivel1) or | ||
| 1393 | -// (strAux2 <> strId_unid_organizacional_nivel2) or | ||
| 1394 | -// (ed_te_localizacao_complementar.Text <> strTe_localizacao_complementar) or | ||
| 1395 | -// (ed_te_info_patrimonio1.Text <> strTe_info_patrimonio1) or | ||
| 1396 | -// (ed_te_info_patrimonio2.Text <> strTe_info_patrimonio2) or | ||
| 1397 | -// (ed_te_info_patrimonio3.Text <> strTe_info_patrimonio3) or | ||
| 1398 | -// (ed_te_info_patrimonio4.Text <> strTe_info_patrimonio4) or | ||
| 1399 | -// (ed_te_info_patrimonio5.Text <> strTe_info_patrimonio5) or | ||
| 1400 | -// (ed_te_info_patrimonio6.Text <> strTe_info_patrimonio6) then | ||
| 1401 | -// begin | ||
| 1402 | - | ||
| 1403 | Mensagem('Enviando Informações Coletadas ao Banco de Dados...',false,intPausaPadrao div 3); | 1317 | Mensagem('Enviando Informações Coletadas ao Banco de Dados...',false,intPausaPadrao div 3); |
| 1404 | 1318 | ||
| 1405 | // Envio dos Dados Coletados ao Banco de Dados | 1319 | // Envio dos Dados Coletados ao Banco de Dados |
| 1406 | tstrListAux := TStringList.Create; | 1320 | tstrListAux := TStringList.Create; |
| 1407 | tstrListAux.Values['te_node_address'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NODE_ADDRESS' , frmMapaCacic.tStringsCipherOpened)); | 1321 | tstrListAux.Values['te_node_address'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NODE_ADDRESS' , frmMapaCacic.tStringsCipherOpened)); |
| 1408 | tstrListAux.Values['id_so'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('Configs.ID_SO' , frmMapaCacic.tStringsCipherOpened)); | 1322 | tstrListAux.Values['id_so'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('Configs.ID_SO' , frmMapaCacic.tStringsCipherOpened)); |
| 1409 | - tstrListAux.Values['te_so'] := frmMapaCacic.EnCrypt(str_te_so); | 1323 | + tstrListAux.Values['te_so'] := frmMapaCacic.EnCrypt(g_oCacic.getWindowsStrId()); |
| 1410 | tstrListAux.Values['id_ip_rede'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.ID_IP_REDE' , frmMapaCacic.tStringsCipherOpened)); | 1324 | tstrListAux.Values['id_ip_rede'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.ID_IP_REDE' , frmMapaCacic.tStringsCipherOpened)); |
| 1411 | tstrListAux.Values['te_ip'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_IP' , frmMapaCacic.tStringsCipherOpened)); | 1325 | tstrListAux.Values['te_ip'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_IP' , frmMapaCacic.tStringsCipherOpened)); |
| 1412 | tstrListAux.Values['te_nome_computador'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NOME_COMPUTADOR' , frmMapaCacic.tStringsCipherOpened)); | 1326 | tstrListAux.Values['te_nome_computador'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NOME_COMPUTADOR' , frmMapaCacic.tStringsCipherOpened)); |
| @@ -1746,9 +1660,10 @@ var intAux : integer; | @@ -1746,9 +1660,10 @@ var intAux : integer; | ||
| 1746 | strRetorno : String; | 1660 | strRetorno : String; |
| 1747 | Request_mapa : TStringList; | 1661 | Request_mapa : TStringList; |
| 1748 | begin | 1662 | begin |
| 1663 | + g_oCacic := TCACIC.Create(); | ||
| 1749 | frmMapaCacic.lbVersao.Caption := 'Versão: ' + frmMapaCacic.GetVersionInfo(ParamStr(0)); | 1664 | frmMapaCacic.lbVersao.Caption := 'Versão: ' + frmMapaCacic.GetVersionInfo(ParamStr(0)); |
| 1750 | log_DEBUG('Versão do MapaCacic: '+frmMapaCacic.lbVersao.Caption); | 1665 | log_DEBUG('Versão do MapaCacic: '+frmMapaCacic.lbVersao.Caption); |
| 1751 | - if (GetWinVer > 5) and not IsAdmin then | 1666 | + if (g_oCacic.isWindowsNTPlataform()) and (not g_oCacic.isWindowsAdmin()) then |
| 1752 | Begin | 1667 | Begin |
| 1753 | MessageDLG(#13#10+'ATENÇÃO! Essa aplicação requer execução com nível administrativo.',mtError,[mbOK],0); | 1668 | MessageDLG(#13#10+'ATENÇÃO! Essa aplicação requer execução com nível administrativo.',mtError,[mbOK],0); |
| 1754 | Sair; | 1669 | Sair; |
| @@ -1805,7 +1720,7 @@ begin | @@ -1805,7 +1720,7 @@ begin | ||
| 1805 | Request_mapa := TStringList.Create; | 1720 | Request_mapa := TStringList.Create; |
| 1806 | Request_mapa.Values['te_node_address'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NODE_ADDRESS' , frmMapaCacic.tStringsCipherOpened)); | 1721 | Request_mapa.Values['te_node_address'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NODE_ADDRESS' , frmMapaCacic.tStringsCipherOpened)); |
| 1807 | Request_mapa.Values['id_so'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('Configs.ID_SO' , frmMapaCacic.tStringsCipherOpened)); | 1722 | Request_mapa.Values['id_so'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('Configs.ID_SO' , frmMapaCacic.tStringsCipherOpened)); |
| 1808 | - Request_mapa.Values['te_so'] := frmMapaCacic.EnCrypt(str_te_so); | 1723 | + Request_mapa.Values['te_so'] := frmMapaCacic.EnCrypt(g_oCacic.getWindowsStrId()); |
| 1809 | Request_mapa.Values['id_ip_rede'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.ID_IP_REDE' , frmMapaCacic.tStringsCipherOpened)); | 1724 | Request_mapa.Values['id_ip_rede'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.ID_IP_REDE' , frmMapaCacic.tStringsCipherOpened)); |
| 1810 | Request_mapa.Values['te_ip'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_IP' , frmMapaCacic.tStringsCipherOpened)); | 1725 | Request_mapa.Values['te_ip'] := frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_IP' , frmMapaCacic.tStringsCipherOpened)); |
| 1811 | Request_mapa.Values['te_nome_computador']:= frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NOME_COMPUTADOR', frmMapaCacic.tStringsCipherOpened)); | 1726 | Request_mapa.Values['te_nome_computador']:= frmMapaCacic.EnCrypt(frmMapaCacic.GetValorDatMemoria('TcpIp.TE_NOME_COMPUTADOR', frmMapaCacic.tStringsCipherOpened)); |