Commit 6663eb4f3b8fb039a214f6d596d88408b3171c81
1 parent
619432b8
Exists in
master
Implementação de USBDetect, ajustes para suporte de coleta de softwares à plataf…
…orma MS-Windows Vista/Seven, pequenas correções e faxina de código. git-svn-id: http://svn.softwarepublico.gov.br/svn/cacic/cacic/trunk/agente-windows@949 fecfc0c7-e812-0410-ae72-849f08638ee7
Showing
26 changed files
with
563 additions
and
230 deletions
Show diff stats
@@ -0,0 +1,164 @@ | @@ -0,0 +1,164 @@ | ||
1 | +unit USBdetectClass; | ||
2 | +// Código Original obtido em http://www.delphi3000.com/articles/article_4841.asp?SK= | ||
3 | +interface | ||
4 | +uses Windows, Messages, SysUtils, Classes; | ||
5 | + | ||
6 | +type | ||
7 | + { Event Types } | ||
8 | + TOnUsbChangeEvent = procedure(AObject : TObject; | ||
9 | + const ADevType,AVendorID, | ||
10 | + AProductID : string) of object; | ||
11 | + | ||
12 | + { USB Class } | ||
13 | + TUsbClass = class(TObject) | ||
14 | + private | ||
15 | + FHandle : HWND; | ||
16 | + FOnUsbRemoval, | ||
17 | + FOnUsbInsertion : TOnUsbChangeEvent; | ||
18 | + procedure GetUsbInfo(const ADeviceString : string; | ||
19 | + out ADevType,AVendorID, | ||
20 | + AProductID : string); | ||
21 | + procedure WinMethod(var AMessage : TMessage); | ||
22 | + procedure RegisterUsbHandler; | ||
23 | + procedure WMDeviceChange(var AMessage : TMessage); | ||
24 | + procedure Split(const Delimiter: Char;Input: string;const Strings: TStrings); | ||
25 | + public | ||
26 | + constructor Create; | ||
27 | + destructor Destroy; override; | ||
28 | + property OnUsbInsertion : TOnUsbChangeEvent read FOnUsbInsertion | ||
29 | + write FOnUsbInsertion; | ||
30 | + property OnUsbRemoval : TOnUsbChangeEvent read FOnUsbRemoval | ||
31 | + write FOnUsbRemoval; | ||
32 | + end; | ||
33 | + | ||
34 | + | ||
35 | + | ||
36 | +// ----------------------------------------------------------------------------- | ||
37 | +implementation | ||
38 | + | ||
39 | +type | ||
40 | + // Win API Definitions | ||
41 | + PDevBroadcastDeviceInterface = ^DEV_BROADCAST_DEVICEINTERFACE; | ||
42 | + DEV_BROADCAST_DEVICEINTERFACE = record | ||
43 | + dbcc_size : DWORD; | ||
44 | + dbcc_devicetype : DWORD; | ||
45 | + dbcc_reserved : DWORD; | ||
46 | + dbcc_classguid : TGUID; | ||
47 | + dbcc_name : char; | ||
48 | + end; | ||
49 | + | ||
50 | +const | ||
51 | + // Miscellaneous | ||
52 | + GUID_DEVINTF_USB_DEVICE : TGUID = '{A5DCBF10-6530-11D2-901F-00C04FB951ED}'; | ||
53 | + USB_INTERFACE = $00000005; // Device interface class | ||
54 | + USB_INSERTION = $8000; // System detected a new device | ||
55 | + USB_REMOVAL = $8004; // Device is gone | ||
56 | + | ||
57 | +constructor TUsbClass.Create; | ||
58 | +begin | ||
59 | + inherited Create; | ||
60 | + FHandle := AllocateHWnd(WinMethod); | ||
61 | + RegisterUsbHandler; | ||
62 | +end; | ||
63 | + | ||
64 | +destructor TUsbClass.Destroy; | ||
65 | +begin | ||
66 | + DeallocateHWnd(FHandle); | ||
67 | + inherited Destroy; | ||
68 | +end; | ||
69 | + | ||
70 | +procedure TUsbClass.GetUsbInfo(const ADeviceString : string; | ||
71 | + out ADevType,AVendorID, | ||
72 | + AProductID : string); | ||
73 | +var sWork,sKey1 : string; | ||
74 | + tstrAUX1,tstrAUX2 : TStringList; | ||
75 | +begin | ||
76 | + ADevType := ''; | ||
77 | + AVendorID := ''; | ||
78 | + AProductID := ''; | ||
79 | + | ||
80 | + if ADeviceString <> '' then | ||
81 | + Begin | ||
82 | + sWork := copy(ADeviceString,pos('#',ADeviceString) + 1,1026); | ||
83 | + sKey1 := copy(sWork,1,pos('#',sWork) - 1); | ||
84 | + | ||
85 | + tstrAUX1 := TStringList.Create; | ||
86 | + tstrAUX2 := TStringList.Create; | ||
87 | + | ||
88 | + Split('&',sKey1,tstrAUX1); | ||
89 | + | ||
90 | + Split('_',tstrAUX1[0],tstrAUX2); | ||
91 | + AVendorID := tstrAUX2[1]; | ||
92 | + | ||
93 | + Split('_',tstrAUX1[1],tstrAUX2); | ||
94 | + AProductID := tstrAUX2[1]; | ||
95 | + | ||
96 | + tstrAUX1.Free; | ||
97 | + tstrAUX2.Free; | ||
98 | + End; | ||
99 | +end; | ||
100 | + | ||
101 | +procedure TUsbClass.Split(const Delimiter: Char; | ||
102 | + Input: string; | ||
103 | + const Strings: TStrings) ; | ||
104 | +begin | ||
105 | + Assert(Assigned(Strings)) ; | ||
106 | + Strings.Clear; | ||
107 | + Strings.Delimiter := Delimiter; | ||
108 | + Strings.DelimitedText := Input; | ||
109 | +end; | ||
110 | + | ||
111 | +procedure TUsbClass.WMDeviceChange(var AMessage : TMessage); | ||
112 | +var iDevType : integer; | ||
113 | + sDevString,sDevType, | ||
114 | + sVendorID,sProductID : string; | ||
115 | + pData : PDevBroadcastDeviceInterface; | ||
116 | +begin | ||
117 | + if (AMessage.wParam = USB_INSERTION) or | ||
118 | + (AMessage.wParam = USB_REMOVAL) then | ||
119 | + Begin | ||
120 | + pData := PDevBroadcastDeviceInterface(AMessage.LParam); | ||
121 | + iDevType := pData^.dbcc_devicetype; | ||
122 | + | ||
123 | + // Se for um dispositivo USB... | ||
124 | + if iDevType = USB_INTERFACE then | ||
125 | + Begin | ||
126 | + sDevString := PChar(@pData^.dbcc_name); | ||
127 | + | ||
128 | + GetUsbInfo(sDevString,sDevType,sVendorID,sProductID); | ||
129 | + | ||
130 | + // O evento é disparado conforme a mensagem | ||
131 | + if (AMessage.wParam = USB_INSERTION) and Assigned(FOnUsbInsertion) then | ||
132 | + FOnUsbInsertion(self,sDevType,sVendorID,sProductID); | ||
133 | + if (AMessage.wParam = USB_REMOVAL) and Assigned(FOnUsbRemoval) then | ||
134 | + FOnUsbRemoval(self,sDevType,sVendorID,sProductID); | ||
135 | + End; | ||
136 | + End; | ||
137 | +end; | ||
138 | + | ||
139 | +procedure TUsbClass.WinMethod(var AMessage : TMessage); | ||
140 | +begin | ||
141 | + if (AMessage.Msg = WM_DEVICECHANGE) then | ||
142 | + WMDeviceChange(AMessage) | ||
143 | + else | ||
144 | + AMessage.Result := DefWindowProc(FHandle,AMessage.Msg, | ||
145 | + AMessage.wParam,AMessage.lParam); | ||
146 | +end; | ||
147 | + | ||
148 | + | ||
149 | +procedure TUsbClass.RegisterUsbHandler; | ||
150 | +var rDbi : DEV_BROADCAST_DEVICEINTERFACE; | ||
151 | + iSize : integer; | ||
152 | +begin | ||
153 | + iSize := SizeOf(DEV_BROADCAST_DEVICEINTERFACE); | ||
154 | + ZeroMemory(@rDbi,iSize); | ||
155 | + rDbi.dbcc_size := iSize; | ||
156 | + rDbi.dbcc_devicetype := USB_INTERFACE; | ||
157 | + rDbi.dbcc_reserved := 0; | ||
158 | + rDbi.dbcc_classguid := GUID_DEVINTF_USB_DEVICE; | ||
159 | + rDbi.dbcc_name := #0; | ||
160 | + RegisterDeviceNotification(FHandle,@rDbi,DEVICE_NOTIFY_WINDOW_HANDLE); | ||
161 | +end; | ||
162 | + | ||
163 | + | ||
164 | +end. |
cacic2.dpr
@@ -26,7 +26,8 @@ uses | @@ -26,7 +26,8 @@ uses | ||
26 | frmLog in 'frmLog.pas' {FormLog}, | 26 | frmLog in 'frmLog.pas' {FormLog}, |
27 | LibXmlParser, | 27 | LibXmlParser, |
28 | WinVNC in 'winvnc.pas', | 28 | WinVNC in 'winvnc.pas', |
29 | - CACIC_Library in 'CACIC_Library.pas'; | 29 | + CACIC_Library in 'CACIC_Library.pas', |
30 | + USBdetectClass in 'USBdetectClass.pas'; | ||
30 | 31 | ||
31 | {$R *.res} | 32 | {$R *.res} |
32 | 33 | ||
@@ -62,5 +63,5 @@ begin | @@ -62,5 +63,5 @@ begin | ||
62 | Application.Initialize; | 63 | Application.Initialize; |
63 | Application.Title := 'cacic2'; | 64 | Application.Title := 'cacic2'; |
64 | Application.CreateForm(TFormularioGeral, FormularioGeral); | 65 | Application.CreateForm(TFormularioGeral, FormularioGeral); |
65 | - Application.Run; | 66 | + Application.Run; |
66 | end. | 67 | end. |
cacic2.res
No preview for this file type
cacicservice/CACICsvc.cfg
@@ -31,5 +31,6 @@ | @@ -31,5 +31,6 @@ | ||
31 | -M | 31 | -M |
32 | -$M16384,1048576 | 32 | -$M16384,1048576 |
33 | -K$00400000 | 33 | -K$00400000 |
34 | --LE"c:\arquivos de programas\borland\delphi7\Projects\Bpl" | ||
35 | --LN"c:\arquivos de programas\borland\delphi7\Projects\Bpl" | 34 | +-E"..\" |
35 | +-LE"c:\program files (x86)\borland\delphi7\Projects\Bpl" | ||
36 | +-LN"c:\program files (x86)\borland\delphi7\Projects\Bpl" |
cacicservice/CACICsvc.dof
@@ -90,7 +90,7 @@ MaxStackSize=1048576 | @@ -90,7 +90,7 @@ MaxStackSize=1048576 | ||
90 | ImageBase=4194304 | 90 | ImageBase=4194304 |
91 | ExeDescription= | 91 | ExeDescription= |
92 | [Directories] | 92 | [Directories] |
93 | -OutputDir= | 93 | +OutputDir=..\ |
94 | UnitOutputDir= | 94 | UnitOutputDir= |
95 | PackageDLLOutputDir= | 95 | PackageDLLOutputDir= |
96 | PackageDCPOutputDir= | 96 | PackageDCPOutputDir= |
@@ -113,9 +113,9 @@ RootDir=E:\NTService\ | @@ -113,9 +113,9 @@ RootDir=E:\NTService\ | ||
113 | IncludeVerInfo=1 | 113 | IncludeVerInfo=1 |
114 | AutoIncBuild=0 | 114 | AutoIncBuild=0 |
115 | MajorVer=2 | 115 | MajorVer=2 |
116 | -MinorVer=5 | 116 | +MinorVer=6 |
117 | Release=0 | 117 | Release=0 |
118 | -Build=774 | 118 | +Build=2 |
119 | Debug=0 | 119 | Debug=0 |
120 | PreRelease=0 | 120 | PreRelease=0 |
121 | Special=0 | 121 | Special=0 |
@@ -124,13 +124,19 @@ DLL=0 | @@ -124,13 +124,19 @@ DLL=0 | ||
124 | Locale=11274 | 124 | Locale=11274 |
125 | CodePage=1252 | 125 | CodePage=1252 |
126 | [Version Info Keys] | 126 | [Version Info Keys] |
127 | -CompanyName=Dataprev - Emp. de TI da Prev Social - URES | ||
128 | -FileDescription=CACICservice - Módulo Serviço para Sustentação do Agente Principal | ||
129 | -FileVersion=2.5.0.774 | 127 | +CompanyName=Dataprev - Emp. de TI da Prev Social - UDSL/SSLC |
128 | +FileDescription=Sistema CACIC - Módulo para Sustentação do Agente Principal | ||
129 | +FileVersion=2.6.0.2 | ||
130 | InternalName= | 130 | InternalName= |
131 | LegalCopyright= | 131 | LegalCopyright= |
132 | LegalTrademarks= | 132 | LegalTrademarks= |
133 | OriginalFilename= | 133 | OriginalFilename= |
134 | ProductName= | 134 | ProductName= |
135 | -ProductVersion=2.6 | ||
136 | -Comments=Baseado na Licença GNU/GPL | 135 | +ProductVersion=2.6.0.1 |
136 | +Comments=Licença: GNU/LGPL | ||
137 | +[HistoryLists\hlUnitAliases] | ||
138 | +Count=1 | ||
139 | +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; | ||
140 | +[HistoryLists\hlOutputDirectorry] | ||
141 | +Count=1 | ||
142 | +Item0=..\ |
cacicservice/CACICsvc.res
No preview for this file type
chkcacic/chkcacic.res
No preview for this file type
chksis/chksis.res
No preview for this file type
col_anvi/col_anvi.dpr
@@ -420,31 +420,31 @@ begin | @@ -420,31 +420,31 @@ begin | ||
420 | Begin | 420 | Begin |
421 | g_oCacic.setCacicPath(strAux); | 421 | g_oCacic.setCacicPath(strAux); |
422 | 422 | ||
423 | - v_Debugs := false; | ||
424 | - if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then | ||
425 | - Begin | ||
426 | - if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then | ||
427 | - Begin | ||
428 | - v_Debugs := true; | ||
429 | - log_diario('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.'); | 423 | + v_Debugs := false; |
424 | + if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then | ||
425 | + Begin | ||
426 | + if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then | ||
427 | + Begin | ||
428 | + v_Debugs := true; | ||
429 | + log_diario('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.'); | ||
430 | + End; | ||
430 | End; | 431 | End; |
431 | - End; | ||
432 | 432 | ||
433 | - v_tstrCipherOpened := TStrings.Create; | ||
434 | - v_tstrCipherOpened := CipherOpen(g_oCacic.getCacicPath + g_oCacic.getDatFileName); | 433 | + v_tstrCipherOpened := TStrings.Create; |
434 | + v_tstrCipherOpened := CipherOpen(g_oCacic.getCacicPath + g_oCacic.getDatFileName); | ||
435 | 435 | ||
436 | - v_tstrCipherOpened1 := TStrings.Create; | ||
437 | - v_tstrCipherOpened1 := CipherOpen(g_oCacic.getCacicPath + 'temp\col_anvi.dat'); | 436 | + v_tstrCipherOpened1 := TStrings.Create; |
437 | + v_tstrCipherOpened1 := CipherOpen(g_oCacic.getCacicPath + 'temp\col_anvi.dat'); | ||
438 | 438 | ||
439 | - Try | ||
440 | - Executa_Col_Anvi; | ||
441 | - Except | ||
442 | - Begin | ||
443 | - SetValorDatMemoria('Col_Anvi.nada', 'nada', v_tstrCipherOpened1); | ||
444 | - CipherClose(g_oCacic.getCacicPath + 'temp\col_anvi.dat', v_tstrCipherOpened1); | ||
445 | - End; | ||
446 | - End; | 439 | + Try |
440 | + Executa_Col_Anvi; | ||
441 | + Except | ||
442 | + Begin | ||
443 | + SetValorDatMemoria('Col_Anvi.nada', 'nada', v_tstrCipherOpened1); | ||
444 | + CipherClose(g_oCacic.getCacicPath + 'temp\col_anvi.dat', v_tstrCipherOpened1); | ||
445 | + End; | ||
446 | + End; | ||
447 | + End; | ||
447 | End; | 448 | End; |
448 | - End; | ||
449 | g_oCacic.Free(); | 449 | g_oCacic.Free(); |
450 | end. | 450 | end. |
col_comp/col_comp.res
No preview for this file type
col_hard/col_hard.dpr
@@ -48,8 +48,6 @@ var | @@ -48,8 +48,6 @@ var | ||
48 | intAux : integer; | 48 | intAux : integer; |
49 | g_oCacic : TCACIC; | 49 | g_oCacic : TCACIC; |
50 | 50 | ||
51 | -const | ||
52 | - CACIC_APP_NAME = 'col_hard'; | ||
53 | 51 | ||
54 | // Dica baixada de http://www.marcosdellantonio.net/2007/06/14/operador-if-ternario-em-delphi-e-c/ | 52 | // Dica baixada de http://www.marcosdellantonio.net/2007/06/14/operador-if-ternario-em-delphi-e-c/ |
55 | // Fiz isso para não ter que acrescentar o componente Math ao USES! | 53 | // Fiz isso para não ter que acrescentar o componente Math ao USES! |
@@ -538,6 +536,16 @@ var v_te_cpu_fabricante, | @@ -538,6 +536,16 @@ var v_te_cpu_fabricante, | ||
538 | 536 | ||
539 | begin | 537 | begin |
540 | 538 | ||
539 | + v_Debugs := false; | ||
540 | + if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then | ||
541 | + Begin | ||
542 | + if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then | ||
543 | + Begin | ||
544 | + v_Debugs := true; | ||
545 | + //log_diario('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.'); | ||
546 | + End; | ||
547 | + End; | ||
548 | + | ||
541 | Try | 549 | Try |
542 | SetValorDatMemoria('Col_Hard.Inicio', FormatDateTime('hh:nn:ss', Now), v_tstrCipherOpened1); | 550 | SetValorDatMemoria('Col_Hard.Inicio', FormatDateTime('hh:nn:ss', Now), v_tstrCipherOpened1); |
543 | v_Report := TStringList.Create; | 551 | v_Report := TStringList.Create; |
@@ -973,51 +981,48 @@ begin | @@ -973,51 +981,48 @@ begin | ||
973 | g_oCacic.Free(); | 981 | g_oCacic.Free(); |
974 | end; | 982 | end; |
975 | 983 | ||
976 | -var strAux : String; | 984 | +// ATENÇÃO: Caso haja falha na execução deste agente pela estação de trabalho, |
985 | +// a provável causa será a falta da Runtime Library RTL70.BPL, que | ||
986 | +// costuma ser "confundida" com vírus e apagada por alguns anti-vírus | ||
987 | +// como o Avasti. | ||
988 | +// SOLUÇÃO: Baixar a partir do endereço http://nwvault.ign.com/View.php?view=Other.Detail&id=119 o pacote | ||
989 | +// D70_Installer.zip, descompactar e executar na estação de trabalho. | ||
990 | +var strAux : String; | ||
991 | +const CACIC_APP_NAME = 'col_hard'; | ||
977 | begin | 992 | begin |
978 | g_oCacic := TCACIC.Create(); | 993 | g_oCacic := TCACIC.Create(); |
979 | - | ||
980 | g_oCacic.setBoolCipher(true); | 994 | g_oCacic.setBoolCipher(true); |
981 | 995 | ||
982 | if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then | 996 | if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then |
983 | - if (ParamCount>0) then | ||
984 | - Begin | ||
985 | - strAux := ''; | ||
986 | - For intAux := 1 to ParamCount do | ||
987 | - Begin | ||
988 | - if LowerCase(Copy(ParamStr(intAux),1,11)) = '/cacicpath=' then | ||
989 | - begin | ||
990 | - strAux := Trim(Copy(ParamStr(intAux),12,Length((ParamStr(intAux))))); | ||
991 | - log_DEBUG('Parâmetro /CacicPath recebido com valor="'+strAux+'"'); | ||
992 | - end; | ||
993 | - end; | ||
994 | - | ||
995 | - if (strAux <> '') then | ||
996 | - Begin | ||
997 | - g_oCacic.setCacicPath(strAux); | 997 | + if (ParamCount>0) then |
998 | + Begin | ||
999 | + strAux := ''; | ||
1000 | + For intAux := 1 to ParamCount do | ||
1001 | + Begin | ||
1002 | + if LowerCase(Copy(ParamStr(intAux),1,11)) = '/cacicpath=' then | ||
1003 | + begin | ||
1004 | + strAux := Trim(Copy(ParamStr(intAux),12,Length((ParamStr(intAux))))); | ||
1005 | + //log_DEBUG('Parâmetro /CacicPath recebido com valor="'+strAux+'"'); | ||
1006 | + end; | ||
1007 | + end; | ||
998 | 1008 | ||
999 | - v_tstrCipherOpened := TStrings.Create; | ||
1000 | - v_tstrCipherOpened := CipherOpen(g_oCacic.getCacicPath + g_oCacic.getDatFileName); | 1009 | + if (strAux <> '') then |
1010 | + Begin | ||
1011 | + g_oCacic.setCacicPath(strAux); | ||
1001 | 1012 | ||
1002 | - v_tstrCipherOpened1 := TStrings.Create; | ||
1003 | - v_tstrCipherOpened1 := CipherOpen(g_oCacic.getCacicPath + 'temp\col_hard.dat'); | 1013 | + v_tstrCipherOpened := TStrings.Create; |
1014 | + v_tstrCipherOpened := CipherOpen(g_oCacic.getCacicPath + g_oCacic.getDatFileName); | ||
1004 | 1015 | ||
1005 | - Try | ||
1006 | - v_Debugs := false; | ||
1007 | - if DirectoryExists(g_oCacic.getCacicPath + 'Temp\Debugs') then | ||
1008 | - Begin | ||
1009 | - if (FormatDateTime('ddmmyyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs')) = FormatDateTime('ddmmyyyy', date)) then | ||
1010 | - Begin | ||
1011 | - v_Debugs := true; | ||
1012 | - log_diario('Pasta "' + g_oCacic.getCacicPath + 'Temp\Debugs" com data '+FormatDateTime('dd-mm-yyyy', GetFolderDate(g_oCacic.getCacicPath + 'Temp\Debugs'))+' encontrada. DEBUG ativado.'); | ||
1013 | - End; | ||
1014 | - End; | ||
1015 | - Executa_Col_Hard; | ||
1016 | - Except | ||
1017 | - SetValorDatMemoria('Col_Hard.nada', 'nada', v_tstrCipherOpened1); | ||
1018 | - CipherClose(g_oCacic.getCacicPath + 'temp\col_hard.dat', v_tstrCipherOpened1); | ||
1019 | - End; | ||
1020 | - End; | ||
1021 | - End; | 1016 | + v_tstrCipherOpened1 := TStrings.Create; |
1017 | + v_tstrCipherOpened1 := CipherOpen(g_oCacic.getCacicPath + 'temp\col_hard.dat'); | ||
1022 | 1018 | ||
1019 | + Try | ||
1020 | + Executa_Col_Hard; | ||
1021 | + Except | ||
1022 | + SetValorDatMemoria('Col_Hard.nada', 'nada', v_tstrCipherOpened1); | ||
1023 | + CipherClose(g_oCacic.getCacicPath + 'temp\col_hard.dat', v_tstrCipherOpened1); | ||
1024 | + End; | ||
1025 | + Halt(0); | ||
1026 | + End; | ||
1027 | + End; | ||
1023 | end. | 1028 | end. |
col_hard/col_hard.res
No preview for this file type
col_moni/col_moni.res
No preview for this file type
col_patr/col_patr.res
No preview for this file type
col_soft/col_soft.dpr
@@ -480,12 +480,15 @@ end; | @@ -480,12 +480,15 @@ end; | ||
480 | 480 | ||
481 | procedure Executa_Col_Soft; | 481 | procedure Executa_Col_Soft; |
482 | var te_versao_mozilla, te_versao_ie, te_versao_jre, te_versao_acrobat_reader, | 482 | var te_versao_mozilla, te_versao_ie, te_versao_jre, te_versao_acrobat_reader, |
483 | - UVC,ValorChaveRegistro, te_inventario_softwares, te_variaveis_ambiente : String; | 483 | + UVC,ValorChaveRegistro, te_inventario_softwares, te_variaveis_ambiente, |
484 | + strDisplayName, | ||
485 | + strKeyName : String; | ||
484 | InfoSoft, v_Report : TStringList; | 486 | InfoSoft, v_Report : TStringList; |
485 | i : integer; | 487 | i : integer; |
486 | v_SOFTWARE : TMiTeC_Software; | 488 | v_SOFTWARE : TMiTeC_Software; |
487 | v_ENGINES : TMiTeC_Engines; | 489 | v_ENGINES : TMiTeC_Engines; |
488 | v_OS : TMiTeC_OperatingSystem; | 490 | v_OS : TMiTeC_OperatingSystem; |
491 | + registrySoftwares : TRegistry; | ||
489 | begin | 492 | begin |
490 | Try | 493 | Try |
491 | log_diario('Coletando informações de Softwares Básicos.'); | 494 | log_diario('Coletando informações de Softwares Básicos.'); |
@@ -495,44 +498,112 @@ begin | @@ -495,44 +498,112 @@ begin | ||
495 | te_versao_jre := GetVersaoJRE; | 498 | te_versao_jre := GetVersaoJRE; |
496 | te_versao_acrobat_reader := GetVersaoAcrobatReader; | 499 | te_versao_acrobat_reader := GetVersaoAcrobatReader; |
497 | te_inventario_softwares := ''; | 500 | te_inventario_softwares := ''; |
501 | + InfoSoft := TStringList.Create; | ||
498 | 502 | ||
499 | - Try | ||
500 | - InfoSoft := TStringList.Create; | ||
501 | - v_SOFTWARE := TMiTeC_Software.Create(nil); | ||
502 | - v_SOFTWARE.RefreshData; | ||
503 | - MSI_XML_Reports.Software_XML_Report(v_SOFTWARE,true,InfoSoft); | 503 | + if not g_oCacic.isWindowsGEVista then |
504 | + Begin | ||
505 | + Try | ||
506 | + v_SOFTWARE := TMiTeC_Software.Create(nil); | ||
507 | + v_SOFTWARE.RefreshData; | ||
508 | + MSI_XML_Reports.Software_XML_Report(v_SOFTWARE,true,InfoSoft); | ||
509 | + | ||
510 | + // Caso exista a pasta ..temp/debugs, será criado o arquivo diário debug_<coletor>.txt | ||
511 | + // Usar esse recurso apenas para debug de coletas mal-sucedidas através do componente MSI-Mitec. | ||
512 | + if v_Debugs then | ||
513 | + Begin | ||
514 | + v_Report := TStringList.Create; | ||
504 | 515 | ||
505 | - // Caso exista a pasta ..temp/debugs, será criado o arquivo diário debug_<coletor>.txt | ||
506 | - // Usar esse recurso apenas para debug de coletas mal-sucedidas através do componente MSI-Mitec. | ||
507 | - if v_Debugs then | ||
508 | - Begin | ||
509 | - v_Report := TStringList.Create; | 516 | + MSI_XML_Reports.Software_XML_Report(v_SOFTWARE,true,v_Report); |
517 | + v_SOFTWARE.Free; | ||
510 | 518 | ||
511 | - MSI_XML_Reports.Software_XML_Report(v_SOFTWARE,true,v_Report); | ||
512 | - v_SOFTWARE.Free; | 519 | + v_OS := TMiTeC_OperatingSystem.Create(nil); |
520 | + v_OS.RefreshData; | ||
513 | 521 | ||
514 | - v_OS := TMiTeC_OperatingSystem.Create(nil); | ||
515 | - v_OS.RefreshData; | 522 | + MSI_XML_Reports.OperatingSystem_XML_Report(v_OS,true,v_Report); |
523 | + v_OS.Free; | ||
524 | + End | ||
516 | 525 | ||
517 | - MSI_XML_Reports.OperatingSystem_XML_Report(v_OS,true,v_Report); | ||
518 | - v_OS.Free; | ||
519 | - End | 526 | + except |
527 | + log_diario('Problema em Software Report!'); | ||
528 | + end; | ||
520 | 529 | ||
521 | - except | ||
522 | - log_diario('Problema em Software Report!'); | ||
523 | - end; | 530 | + for i := 0 to v_SOFTWARE.Count - 1 do |
531 | + begin | ||
532 | + if (trim(Copy(InfoSoft[i],1,14))='<section name=') then | ||
533 | + Begin | ||
534 | + if (te_inventario_softwares <> '') then | ||
535 | + te_inventario_softwares := te_inventario_softwares + '#'; | ||
536 | + te_inventario_softwares := te_inventario_softwares + Copy(InfoSoft[i],16,Pos('">',InfoSoft[i])-16); | ||
537 | + End; | ||
538 | + end; | ||
539 | + | ||
540 | + v_SOFTWARE.Free; | ||
541 | + end | ||
542 | + else | ||
543 | + Begin | ||
544 | + // Chave para 64Bits | ||
545 | + strKeyName := 'Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall'; | ||
546 | + | ||
547 | + registrySoftwares := TRegistry.Create; | ||
548 | + with registrySoftwares do | ||
549 | + begin | ||
550 | + RootKey:=HKEY_LOCAL_MACHINE; | ||
551 | + if OpenKey(strKeyName,False)=True then GetKeyNames(InfoSoft); | ||
552 | + CloseKey; | ||
553 | + | ||
554 | + for i:=0 to InfoSoft.Count-1 do | ||
555 | + begin | ||
556 | + RootKey:=HKEY_LOCAL_MACHINE; | ||
557 | + OpenKey(strKeyName + '\'+InfoSoft[i],False); | ||
558 | + strDisplayName := ReadString('DisplayName'); | ||
559 | + if (strDisplayName <> '') then | ||
560 | + Begin | ||
561 | + if (Copy(strDisplayName,1,1)='{') then | ||
562 | + begin | ||
563 | + OpenKey(strKeyName + '\'+InfoSoft[i]+'\'+strDisplayName,False); | ||
564 | + strDisplayName := ReadString('DisplayName'); | ||
565 | + end; | ||
566 | + | ||
567 | + if (te_inventario_softwares <> '') then | ||
568 | + te_inventario_softwares := te_inventario_softwares + '#'; | ||
569 | + te_inventario_softwares := te_inventario_softwares + strDisplayName; | ||
570 | + end; | ||
571 | + CloseKey; | ||
572 | + end; | ||
573 | + end; | ||
574 | + | ||
575 | + // Caso a consulta acima tenha retornado vazio, tentarei a chave para 32Bits | ||
576 | + strKeyName := 'Software\Microsoft\Windows\CurrentVersion\Uninstall'; | ||
524 | 577 | ||
525 | - for i := 0 to v_SOFTWARE.Count - 1 do | ||
526 | - begin | ||
527 | - if (trim(Copy(InfoSoft[i],1,14))='<section name=') then | 578 | + with registrySoftwares do |
579 | + begin | ||
580 | + RootKey:=HKEY_LOCAL_MACHINE; | ||
581 | + if OpenKey(strKeyName,False)=True then GetKeyNames(InfoSoft); | ||
582 | + CloseKey; | ||
583 | + | ||
584 | + for i:=0 to InfoSoft.Count-1 do | ||
585 | + begin | ||
586 | + RootKey:=HKEY_LOCAL_MACHINE; | ||
587 | + OpenKey(strKeyName + '\'+InfoSoft[i],False); | ||
588 | + strDisplayName := ReadString('DisplayName'); | ||
589 | + if (strDisplayName <> '') then | ||
528 | Begin | 590 | Begin |
591 | + if (Copy(strDisplayName,1,1)='{') then | ||
592 | + begin | ||
593 | + OpenKey(strKeyName + '\'+InfoSoft[i]+'\'+strDisplayName,False); | ||
594 | + strDisplayName := ReadString('DisplayName'); | ||
595 | + end; | ||
596 | + | ||
529 | if (te_inventario_softwares <> '') then | 597 | if (te_inventario_softwares <> '') then |
530 | - te_inventario_softwares := te_inventario_softwares + '#'; | ||
531 | - te_inventario_softwares := te_inventario_softwares + Copy(InfoSoft[i],16,Pos('">',InfoSoft[i])-16); | ||
532 | - End; | ||
533 | - end; | 598 | + te_inventario_softwares := te_inventario_softwares + '#'; |
599 | + te_inventario_softwares := te_inventario_softwares + strDisplayName; | ||
600 | + end; | ||
601 | + CloseKey; | ||
602 | + end; | ||
603 | + end; | ||
534 | 604 | ||
535 | - v_SOFTWARE.Free; | 605 | + // |
606 | + end; | ||
536 | 607 | ||
537 | try | 608 | try |
538 | te_inventario_softwares := AnsiToAscii(te_inventario_softwares); | 609 | te_inventario_softwares := AnsiToAscii(te_inventario_softwares); |
col_soft/col_soft.res
No preview for this file type
col_undi/col_undi.res
No preview for this file type
frmsenha.dfm
ger_cols/ger_cols.dpr
@@ -56,6 +56,7 @@ var | @@ -56,6 +56,7 @@ var | ||
56 | v_Endereco_Servidor, | 56 | v_Endereco_Servidor, |
57 | v_Aux, | 57 | v_Aux, |
58 | strAux, | 58 | strAux, |
59 | + strUSBinfo, | ||
59 | endereco_servidor_cacic, | 60 | endereco_servidor_cacic, |
60 | v_ModulosOpcoes, | 61 | v_ModulosOpcoes, |
61 | v_ResultCompress, | 62 | v_ResultCompress, |
@@ -328,6 +329,7 @@ var v_strCipherOpenImploded, | @@ -328,6 +329,7 @@ var v_strCipherOpenImploded, | ||
328 | v_DatFileDebug : TextFile; | 329 | v_DatFileDebug : TextFile; |
329 | v_cs_cipher : boolean; | 330 | v_cs_cipher : boolean; |
330 | begin | 331 | begin |
332 | + log_DEBUG('CipherClose: datFileName="' + g_oCacic.getDatFileName + '"'); | ||
331 | try | 333 | try |
332 | FileSetAttr (p_DatFileName,0); // Retira os atributos do arquivo para evitar o erro FILE ACCESS DENIED em máquinas 2000 | 334 | FileSetAttr (p_DatFileName,0); // Retira os atributos do arquivo para evitar o erro FILE ACCESS DENIED em máquinas 2000 |
333 | AssignFile(v_DatFile,p_DatFileName); {Associa o arquivo a uma variável do tipo TextFile} | 335 | AssignFile(v_DatFile,p_DatFileName); {Associa o arquivo a uma variável do tipo TextFile} |
@@ -347,6 +349,7 @@ begin | @@ -347,6 +349,7 @@ begin | ||
347 | {$IOChecks on} | 349 | {$IOChecks on} |
348 | Append(v_DatFileDebug); | 350 | Append(v_DatFileDebug); |
349 | End; | 351 | End; |
352 | + log_DEBUG('CipherClose: separatorKey="' + g_oCacic.getSeparatorKey + '"'); | ||
350 | 353 | ||
351 | v_strCipherOpenImploded := g_oCacic.implode(p_tstrCipherOpened,g_oCacic.getSeparatorKey); | 354 | v_strCipherOpenImploded := g_oCacic.implode(p_tstrCipherOpened,g_oCacic.getSeparatorKey); |
352 | 355 | ||
@@ -2277,10 +2280,10 @@ Begin | @@ -2277,10 +2280,10 @@ Begin | ||
2277 | SetValorDatMemoria('Configs.te_palavra_chave',strAux, v_tstrCipherOpened); | 2280 | SetValorDatMemoria('Configs.te_palavra_chave',strAux, v_tstrCipherOpened); |
2278 | 2281 | ||
2279 | // Verifico se srCACIC está em execução e em caso positivo entrego a chave atualizada | 2282 | // Verifico se srCACIC está em execução e em caso positivo entrego a chave atualizada |
2280 | - Matar(g_oCacic.getCacicPath+'Temp\','aguarde_SRCACIC.txt'); | ||
2281 | - sleep(2000); | ||
2282 | - if (FileExists(g_oCacic.getCacicPath + 'Temp\aguarde_SRCACIC.txt')) then | ||
2283 | - Begin | 2283 | + //Matar(g_oCacic.getCacicPath+'Temp\','aguarde_SRCACIC.txt'); |
2284 | + //sleep(2000); | ||
2285 | + //if (FileExists(g_oCacic.getCacicPath + 'Temp\aguarde_SRCACIC.txt')) then | ||
2286 | + // Begin | ||
2284 | // Alguns cuidados necessários ao tráfego e recepção de valores pelo Gerente WEB | 2287 | // Alguns cuidados necessários ao tráfego e recepção de valores pelo Gerente WEB |
2285 | // Some cares about send and receive at Gerente WEB | 2288 | // Some cares about send and receive at Gerente WEB |
2286 | v_Aux := StringReplace(strAux ,' ' ,'<ESPACE>' ,[rfReplaceAll]); | 2289 | v_Aux := StringReplace(strAux ,' ' ,'<ESPACE>' ,[rfReplaceAll]); |
@@ -2296,7 +2299,7 @@ Begin | @@ -2296,7 +2299,7 @@ Begin | ||
2296 | Append(v_txtCookie); | 2299 | Append(v_txtCookie); |
2297 | Writeln(v_txtCookie,v_Aux); | 2300 | Writeln(v_txtCookie,v_Aux); |
2298 | CloseFile(v_txtCookie); | 2301 | CloseFile(v_txtCookie); |
2299 | - End; | 2302 | + // End; |
2300 | 2303 | ||
2301 | 2304 | ||
2302 | Request_SVG.Values['te_palavra_chave'] := g_oCacic.enCrypt(strAux); | 2305 | Request_SVG.Values['te_palavra_chave'] := g_oCacic.enCrypt(strAux); |
@@ -2495,7 +2498,8 @@ Begin | @@ -2495,7 +2498,8 @@ Begin | ||
2495 | end; | 2498 | end; |
2496 | 2499 | ||
2497 | procedure Executa_Ger_Cols; | 2500 | procedure Executa_Ger_Cols; |
2498 | -var strDtHrColetaForcada, | 2501 | +var strRetorno, |
2502 | + strDtHrColetaForcada, | ||
2499 | strDtHrUltimaColeta : String; | 2503 | strDtHrUltimaColeta : String; |
2500 | Begin | 2504 | Begin |
2501 | Try | 2505 | Try |
@@ -2505,6 +2509,7 @@ Begin | @@ -2505,6 +2509,7 @@ Begin | ||
2505 | // /coletas => Chamada para ativação das coletas | 2509 | // /coletas => Chamada para ativação das coletas |
2506 | // /recuperaSR => Chamada para tentativa de recuperação do módulo srCACIC | 2510 | // /recuperaSR => Chamada para tentativa de recuperação do módulo srCACIC |
2507 | // /patrimonio => Chamada para ativação do Formulário de Patrimônio | 2511 | // /patrimonio => Chamada para ativação do Formulário de Patrimônio |
2512 | + // USBinfo => Informação sobre dispositivo USB inserido/removido | ||
2508 | // UpdatePrincipal => Atualização do Agente Principal | 2513 | // UpdatePrincipal => Atualização do Agente Principal |
2509 | // Chamada com parâmetros pelo chkcacic.exe ou linha de comando | 2514 | // Chamada com parâmetros pelo chkcacic.exe ou linha de comando |
2510 | // Chamada efetuada pelo Cacic2.exe quando da existência de temp\cacic2.exe para AutoUpdate | 2515 | // Chamada efetuada pelo Cacic2.exe quando da existência de temp\cacic2.exe para AutoUpdate |
@@ -2552,6 +2557,34 @@ Begin | @@ -2552,6 +2557,34 @@ Begin | ||
2552 | Sair; | 2557 | Sair; |
2553 | End; | 2558 | End; |
2554 | 2559 | ||
2560 | + strUSBinfo := ''; | ||
2561 | + | ||
2562 | + // Chamada com informação de dispositivo USB inserido/removido | ||
2563 | + For intAux := 1 to ParamCount do | ||
2564 | + If LowerCase(Copy(ParamStr(intAux),1,9)) = '/usbinfo=' then | ||
2565 | + strUSBinfo := Trim(Copy(ParamStr(intAux),10,Length((ParamStr(intAux))))); | ||
2566 | + | ||
2567 | + // Envio da informação sobre o dispositivo USB ao Gerente WEB | ||
2568 | + if (strUSBinfo <> '') then | ||
2569 | + begin | ||
2570 | + log_DEBUG('Parâmetro USBinfo recebido: "'+strUSBinfo+'"'); | ||
2571 | + v_acao_gercols := 'Informando ao Gerente WEB sobre dispositivo USB inserido/removido.'; | ||
2572 | + | ||
2573 | + ChecaCipher; | ||
2574 | + ChecaCompress; | ||
2575 | + | ||
2576 | + Request_Ger_Cols := TStringList.Create; | ||
2577 | + log_DEBUG('Preparando para criptografar "'+strUSBinfo+'"'); | ||
2578 | + Request_Ger_Cols.Values['te_usb_info'] := StringReplace(g_oCacic.enCrypt(strUSBinfo),'+','<MAIS>',[rfReplaceAll]); | ||
2579 | + log_DEBUG('Preparando para empacotar "'+Request_Ger_Cols.Values['te_usb_info']+'"'); | ||
2580 | + strRetorno := ComunicaServidor('set_usbinfo.php', Request_Ger_Cols, '>> Enviando informações sobre ' + IfThen(Copy(strUSBinfo,1,1)='I','Inserção','Remoção')+ ' de dispositivo USB ao Gerente WEB!'); | ||
2581 | + if (g_oCacic.deCrypt(XML_RetornaValor('nm_device', strRetorno)) <> '') then | ||
2582 | + log_diario('Dispositivo USB ' + IfThen(Copy(strUSBinfo,1,1)='I','Inserido','Removido')+': "' + g_oCacic.deCrypt(XML_RetornaValor('nm_device', strRetorno)+'"')+'"'); | ||
2583 | + Request_Ger_Cols.Free; | ||
2584 | + | ||
2585 | + Finalizar(true); | ||
2586 | + end; | ||
2587 | + | ||
2555 | For intAux := 1 to ParamCount do | 2588 | For intAux := 1 to ParamCount do |
2556 | Begin | 2589 | Begin |
2557 | if LowerCase(Copy(ParamStr(intAux),1,15)) = '/ip_serv_cacic=' then | 2590 | if LowerCase(Copy(ParamStr(intAux),1,15)) = '/ip_serv_cacic=' then |
@@ -2656,7 +2689,9 @@ Begin | @@ -2656,7 +2689,9 @@ Begin | ||
2656 | Finalizar(false); | 2689 | Finalizar(false); |
2657 | Sair; | 2690 | Sair; |
2658 | End; | 2691 | End; |
2659 | - End; | 2692 | + End |
2693 | + else | ||
2694 | + log_Diario('Indicador CS_AUTO_UPDATE="N". O recomendado é que esteja em "S" no Gerente WEB!'); | ||
2660 | 2695 | ||
2661 | if ((GetValorDatMemoria('Configs.CS_COLETA_HARDWARE' , v_tstrCipherOpened) = 'S') or | 2696 | if ((GetValorDatMemoria('Configs.CS_COLETA_HARDWARE' , v_tstrCipherOpened) = 'S') or |
2662 | (GetValorDatMemoria('Configs.CS_COLETA_SOFTWARE' , v_tstrCipherOpened) = 'S') or | 2697 | (GetValorDatMemoria('Configs.CS_COLETA_SOFTWARE' , v_tstrCipherOpened) = 'S') or |
@@ -3272,15 +3307,28 @@ Begin | @@ -3272,15 +3307,28 @@ Begin | ||
3272 | // g_oCacic.Free; | 3307 | // g_oCacic.Free; |
3273 | End; | 3308 | End; |
3274 | 3309 | ||
3310 | +procedure CriaCookie; | ||
3311 | +Begin | ||
3312 | + // A existência e bloqueio do arquivo abaixo evitará que Cacic2.exe chame o Ger_Cols quando este estiver em funcionamento | ||
3313 | + AssignFile(v_Aguarde,g_oCacic.getCacicPath + 'temp\aguarde_GER.txt'); {Associa o arquivo a uma variável do tipo TextFile} | ||
3314 | + {$IOChecks off} | ||
3315 | + Reset(v_Aguarde); {Abre o arquivo texto} | ||
3316 | + {$IOChecks on} | ||
3317 | + if (IOResult <> 0) then // Arquivo não existe, será recriado. | ||
3318 | + Rewrite (v_Aguarde); | ||
3319 | + | ||
3320 | + Append(v_Aguarde); | ||
3321 | + Writeln(v_Aguarde,'Apenas um pseudo-cookie para o Cacic2 esperar o término de Ger_Cols'); | ||
3322 | + Append(v_Aguarde); | ||
3323 | +End; | ||
3324 | + | ||
3275 | begin | 3325 | begin |
3276 | g_oCacic := TCACIC.Create(); | 3326 | g_oCacic := TCACIC.Create(); |
3277 | - | ||
3278 | if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then | 3327 | if( not g_oCacic.isAppRunning( CACIC_APP_NAME ) ) then |
3279 | begin | 3328 | begin |
3280 | if ParamCount > 0 then | 3329 | if ParamCount > 0 then |
3281 | Begin | 3330 | Begin |
3282 | strAux := ''; | 3331 | strAux := ''; |
3283 | - | ||
3284 | For intAux := 1 to ParamCount do | 3332 | For intAux := 1 to ParamCount do |
3285 | Begin | 3333 | Begin |
3286 | if (LowerCase(Copy(ParamStr(intAux),1,11)) = '/cacicpath=') then | 3334 | if (LowerCase(Copy(ParamStr(intAux),1,11)) = '/cacicpath=') then |
@@ -3322,18 +3370,8 @@ begin | @@ -3322,18 +3370,8 @@ begin | ||
3322 | log_DEBUG('Te_So obtido: "' + g_oCacic.getWindowsStrId() +'"'); | 3370 | log_DEBUG('Te_So obtido: "' + g_oCacic.getWindowsStrId() +'"'); |
3323 | 3371 | ||
3324 | v_scripter := 'wscript.exe'; | 3372 | v_scripter := 'wscript.exe'; |
3325 | - // A existência e bloqueio do arquivo abaixo evitará que Cacic2.exe chame o Ger_Cols quando este estiver em funcionamento | ||
3326 | - AssignFile(v_Aguarde,g_oCacic.getCacicPath + 'temp\aguarde_GER.txt'); {Associa o arquivo a uma variável do tipo TextFile} | ||
3327 | - {$IOChecks off} | ||
3328 | - Reset(v_Aguarde); {Abre o arquivo texto} | ||
3329 | - {$IOChecks on} | ||
3330 | - if (IOResult <> 0) then // Arquivo não existe, será recriado. | ||
3331 | - Rewrite (v_Aguarde); | ||
3332 | - | ||
3333 | - Append(v_Aguarde); | ||
3334 | - Writeln(v_Aguarde,'Apenas um pseudo-cookie para o Cacic2 esperar o término de Ger_Cols'); | ||
3335 | - Append(v_Aguarde); | ||
3336 | 3373 | ||
3374 | + CriaCookie; | ||
3337 | ChecaCipher; | 3375 | ChecaCipher; |
3338 | ChecaCompress; | 3376 | ChecaCompress; |
3339 | 3377 |
ger_cols/ger_cols.res
No preview for this file type
ini_cols/ini_cols.dpr
@@ -324,6 +324,7 @@ begin | @@ -324,6 +324,7 @@ begin | ||
324 | log_DEBUG('Chamando "' + v_tstrModuloOpcao[0]+'.exe " /p_Option='+v_tstrModuloOpcao[2]); | 324 | log_DEBUG('Chamando "' + v_tstrModuloOpcao[0]+'.exe " /p_Option='+v_tstrModuloOpcao[2]); |
325 | 325 | ||
326 | g_oCacic.createSampleProcess( g_oCacic.getCacicPath + '\modulos\' + strAux, CACIC_PROCESS_WAIT ); | 326 | g_oCacic.createSampleProcess( g_oCacic.getCacicPath + '\modulos\' + strAux, CACIC_PROCESS_WAIT ); |
327 | + Sleep(500); | ||
327 | End; | 328 | End; |
328 | except | 329 | except |
329 | end; | 330 | end; |
ini_cols/ini_cols.res
No preview for this file type
main.dfm
1 | object FormularioGeral: TFormularioGeral | 1 | object FormularioGeral: TFormularioGeral |
2 | - Left = 301 | ||
3 | - Top = 108 | 2 | + Left = 300 |
3 | + Top = 107 | ||
4 | HorzScrollBar.Visible = False | 4 | HorzScrollBar.Visible = False |
5 | VertScrollBar.Visible = False | 5 | VertScrollBar.Visible = False |
6 | BiDiMode = bdLeftToRight | 6 | BiDiMode = bdLeftToRight |
@@ -155,7 +155,7 @@ object FormularioGeral: TFormularioGeral | @@ -155,7 +155,7 @@ object FormularioGeral: TFormularioGeral | ||
155 | Height = 16 | 155 | Height = 16 |
156 | BevelInner = bvLowered | 156 | BevelInner = bvLowered |
157 | BevelOuter = bvLowered | 157 | BevelOuter = bvLowered |
158 | - Caption = 'v. 2.4.0.xxx' | 158 | + Caption = 'v. 2.6.0.xxx' |
159 | Color = clBackground | 159 | Color = clBackground |
160 | Font.Charset = DEFAULT_CHARSET | 160 | Font.Charset = DEFAULT_CHARSET |
161 | Font.Color = clWhite | 161 | Font.Color = clWhite |
main.pas
@@ -39,7 +39,8 @@ uses | @@ -39,7 +39,8 @@ uses | ||
39 | Buttons, | 39 | Buttons, |
40 | CACIC_Library, | 40 | CACIC_Library, |
41 | ImgList, | 41 | ImgList, |
42 | - Graphics; | 42 | + Graphics, |
43 | + USBdetectClass; | ||
43 | 44 | ||
44 | //IdTCPServer; | 45 | //IdTCPServer; |
45 | //IdFTPServer; | 46 | //IdFTPServer; |
@@ -211,9 +212,12 @@ type | @@ -211,9 +212,12 @@ type | ||
211 | procedure Popup_Menu_ContextoPopup(Sender: TObject); | 212 | procedure Popup_Menu_ContextoPopup(Sender: TObject); |
212 | procedure Timer_InicializaTrayTimer(Sender: TObject); | 213 | procedure Timer_InicializaTrayTimer(Sender: TObject); |
213 | private | 214 | private |
215 | + FUsb : TUsbClass; | ||
214 | ShutdownEmExecucao : Boolean; | 216 | ShutdownEmExecucao : Boolean; |
215 | IsMenuOpen : Boolean; | 217 | IsMenuOpen : Boolean; |
216 | NotifyStruc : TNotifyIconData; {Estrutura do tray icon} | 218 | NotifyStruc : TNotifyIconData; {Estrutura do tray icon} |
219 | + procedure UsbIN(ASender : TObject; const ADevType,AVendorID,ADeviceID : string); | ||
220 | + procedure UsbOUT(ASender : TObject; const ADevType,AVendorID,ADeviceID : string); | ||
217 | procedure InicializaTray; | 221 | procedure InicializaTray; |
218 | procedure Finaliza; | 222 | procedure Finaliza; |
219 | procedure VerificaDebugs; | 223 | procedure VerificaDebugs; |
@@ -221,7 +225,7 @@ type | @@ -221,7 +225,7 @@ type | ||
221 | Function RetornaValorVetorUON1(id1 : string) : String; | 225 | Function RetornaValorVetorUON1(id1 : string) : String; |
222 | Function RetornaValorVetorUON1a(id1a : string) : String; | 226 | Function RetornaValorVetorUON1a(id1a : string) : String; |
223 | Function RetornaValorVetorUON2(id2, idLocal: string) : String; | 227 | Function RetornaValorVetorUON2(id2, idLocal: string) : String; |
224 | - procedure Invoca_GerCols(p_acao:string); | 228 | + procedure Invoca_GerCols(p_acao:string; boolShowInfo : Boolean = true); |
225 | function GetVersionInfo(p_File: string):string; | 229 | function GetVersionInfo(p_File: string):string; |
226 | function VerFmt(const MS, LS: DWORD): string; | 230 | function VerFmt(const MS, LS: DWORD): string; |
227 | procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND; | 231 | procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND; |
@@ -327,6 +331,29 @@ begin | @@ -327,6 +331,29 @@ begin | ||
327 | end; | 331 | end; |
328 | inherited; | 332 | inherited; |
329 | end; | 333 | end; |
334 | + | ||
335 | +// Início de Procedimentos para monitoramento de dispositivos USB - Anderson Peterle - 02/2010 | ||
336 | +procedure TFormularioGeral.UsbIN(ASender : TObject; const ADevType,AVendorID,ADeviceID : string); | ||
337 | +begin | ||
338 | + // Envio de valores ao Gerente WEB | ||
339 | + // Formato: USBinfo=I_ddmmyyyyhhnnss_ADeviceID | ||
340 | + // Os valores serão armazenados localmente (cacic2.dat) se for impossível o envio. | ||
341 | + Log_Debug('<< USB INSERIDO .:. Vendor ID => ' + AVendorID + ' .:. Device ID = ' + ADeviceID); | ||
342 | + Invoca_GerCols('USBinfo=I_'+FormatDateTime('yyyymmddhhnnss', now) + '_' + AVendorID + '_' + ADeviceID,false); | ||
343 | +end; | ||
344 | + | ||
345 | + | ||
346 | +procedure TFormularioGeral.UsbOUT(ASender : TObject; const ADevType,AVendorID,ADeviceID : string); | ||
347 | +begin | ||
348 | + // Envio de valores ao Gerente WEB | ||
349 | + // Formato: USBinfo=O_ddmmyyyyhhnnss_ADeviceID | ||
350 | + // Os valores serão armazenados localmente (cacic2.dat) se for impossível o envio. | ||
351 | + Log_Debug('>> USB REMOVIDO .:. Vendor ID => ' + AVendorID + ' .:. Device ID = ' + ADeviceID); | ||
352 | + Invoca_GerCols('USBinfo=O_'+FormatDateTime('yyyymmddhhnnss', now) + '_' + AVendorID + '_' + ADeviceID,false); | ||
353 | +end; | ||
354 | + | ||
355 | +// Fim de Procedimentos para monitoramento de dispositivos USB - Anderson Peterle - 02/2010 | ||
356 | + | ||
330 | procedure TFormularioGeral.MontaVetoresPatrimonio(p_strConfigs : String); | 357 | procedure TFormularioGeral.MontaVetoresPatrimonio(p_strConfigs : String); |
331 | var Parser : TXmlParser; | 358 | var Parser : TXmlParser; |
332 | i : integer; | 359 | i : integer; |
@@ -1231,6 +1258,11 @@ var strAux, | @@ -1231,6 +1258,11 @@ var strAux, | ||
1231 | v_SystemDrive : TStrings; | 1258 | v_SystemDrive : TStrings; |
1232 | begin | 1259 | begin |
1233 | 1260 | ||
1261 | + // Criação do objeto para monitoramento de dispositivos USB | ||
1262 | + FUsb := TUsbClass.Create; | ||
1263 | + FUsb.OnUsbInsertion := UsbIN; | ||
1264 | + FUsb.OnUsbRemoval := UsbOUT; | ||
1265 | + | ||
1234 | // Essas variáveis ajudarão a controlar o redesenho do ícone no systray, | 1266 | // Essas variáveis ajudarão a controlar o redesenho do ícone no systray, |
1235 | // evitando o "roubo" do foco. | 1267 | // evitando o "roubo" do foco. |
1236 | g_intTaskBarAtual := 0; | 1268 | g_intTaskBarAtual := 0; |
@@ -1516,6 +1548,7 @@ Begin | @@ -1516,6 +1548,7 @@ Begin | ||
1516 | log_diario('PROBLEMAS NA FINALIZAÇÃO'); | 1548 | log_diario('PROBLEMAS NA FINALIZAÇÃO'); |
1517 | End; | 1549 | End; |
1518 | g_oCacic.Free; | 1550 | g_oCacic.Free; |
1551 | + FreeAndNil(FUsb); | ||
1519 | FreeMemory(0); | 1552 | FreeMemory(0); |
1520 | Application.Terminate; | 1553 | Application.Terminate; |
1521 | End; | 1554 | End; |
@@ -1527,7 +1560,7 @@ begin | @@ -1527,7 +1560,7 @@ begin | ||
1527 | If (getValorDatMemoria('Configs.SJI',v_tstrCipherOpened) = 'S') Then Finaliza; | 1560 | If (getValorDatMemoria('Configs.SJI',v_tstrCipherOpened) = 'S') Then Finaliza; |
1528 | end; | 1561 | end; |
1529 | 1562 | ||
1530 | -procedure TFormularioGeral.Invoca_GerCols(p_acao:string); | 1563 | +procedure TFormularioGeral.Invoca_GerCols(p_acao:string; boolShowInfo : Boolean = true); |
1531 | begin | 1564 | begin |
1532 | Matar(g_oCacic.getCacicPath + 'temp\','*.txt'); | 1565 | Matar(g_oCacic.getCacicPath + 'temp\','*.txt'); |
1533 | Matar(g_oCacic.getCacicPath + 'temp\','*.ini'); | 1566 | Matar(g_oCacic.getCacicPath + 'temp\','*.ini'); |
@@ -1535,12 +1568,17 @@ begin | @@ -1535,12 +1568,17 @@ begin | ||
1535 | // Caso exista o Gerente de Coletas será verificada a versão e excluída caso antiga(Uma forma de ação pró-ativa) | 1568 | // Caso exista o Gerente de Coletas será verificada a versão e excluída caso antiga(Uma forma de ação pró-ativa) |
1536 | if ChecaGERCOLS then | 1569 | if ChecaGERCOLS then |
1537 | Begin | 1570 | Begin |
1571 | + Timer_InicializaTray.Enabled := False; | ||
1538 | ChecaCONFIGS; | 1572 | ChecaCONFIGS; |
1539 | CipherClose; | 1573 | CipherClose; |
1540 | - log_diario('Invocando Gerente de Coletas com ação: "'+p_acao+'"'); | 1574 | + if boolShowInfo then |
1575 | + log_diario('Invocando Gerente de Coletas com ação: "'+p_acao+'"') | ||
1576 | + else | ||
1577 | + log_DEBUG('Invocando Gerente de Coletas com ação: "'+p_acao+'"'); | ||
1541 | Timer_Nu_Exec_Apos.Enabled := False; | 1578 | Timer_Nu_Exec_Apos.Enabled := False; |
1542 | - Log_DEBUG('Criando Processo Ger_Cols...'); | 1579 | + Log_DEBUG('Criando Processo Ger_Cols => "'+g_oCacic.getCacicPath + 'modulos\GER_COLS.EXE /'+p_acao+' /CacicPath='+g_oCacic.getCacicPath+'"'); |
1543 | g_oCacic.createSampleProcess(g_oCacic.getCacicPath + 'modulos\GER_COLS.EXE /'+p_acao+' /CacicPath='+g_oCacic.getCacicPath,false,SW_HIDE); | 1580 | g_oCacic.createSampleProcess(g_oCacic.getCacicPath + 'modulos\GER_COLS.EXE /'+p_acao+' /CacicPath='+g_oCacic.getCacicPath,false,SW_HIDE); |
1581 | + Timer_InicializaTray.Enabled := True; | ||
1544 | End | 1582 | End |
1545 | else | 1583 | else |
1546 | log_diario('Não foi possível invocar o Gerente de Coletas!'); | 1584 | log_diario('Não foi possível invocar o Gerente de Coletas!'); |
@@ -2001,6 +2039,7 @@ procedure TFormularioGeral.WMQueryEndSession(var Msg: TWMQueryEndSession); | @@ -2001,6 +2039,7 @@ procedure TFormularioGeral.WMQueryEndSession(var Msg: TWMQueryEndSession); | ||
2001 | begin | 2039 | begin |
2002 | // Quando há um shutdown do windows em execução, libera o close. | 2040 | // Quando há um shutdown do windows em execução, libera o close. |
2003 | OnCloseQuery := Nil; | 2041 | OnCloseQuery := Nil; |
2042 | + FreeAndNil(FUsb); | ||
2004 | Application.Terminate; | 2043 | Application.Terminate; |
2005 | inherited // Continue ShutDown request | 2044 | inherited // Continue ShutDown request |
2006 | end; | 2045 | end; |
@@ -2451,6 +2490,8 @@ begin | @@ -2451,6 +2490,8 @@ begin | ||
2451 | 2490 | ||
2452 | // Alguns cuidados necessários ao tráfego e recepção de valores pelo Gerente WEB | 2491 | // Alguns cuidados necessários ao tráfego e recepção de valores pelo Gerente WEB |
2453 | // Some cares about send and receive at Gerente WEB | 2492 | // Some cares about send and receive at Gerente WEB |
2493 | + // A partir da versão 2.6.0.2 deixo de enviar a palavra chave para que o srCACICsrv busque-a diretamente de cacic2.dat | ||
2494 | + { | ||
2454 | v_strPalavraChave := FormularioGeral.getValorDatMemoria('Configs.te_palavra_chave', v_tstrCipherOpened); | 2495 | v_strPalavraChave := FormularioGeral.getValorDatMemoria('Configs.te_palavra_chave', v_tstrCipherOpened); |
2455 | v_strPalavraChave := StringReplace(v_strPalavraChave,' ' ,'<ESPACE>' ,[rfReplaceAll]); | 2496 | v_strPalavraChave := StringReplace(v_strPalavraChave,' ' ,'<ESPACE>' ,[rfReplaceAll]); |
2456 | v_strPalavraChave := StringReplace(v_strPalavraChave,'"' ,'<AD>' ,[rfReplaceAll]); | 2497 | v_strPalavraChave := StringReplace(v_strPalavraChave,'"' ,'<AD>' ,[rfReplaceAll]); |
@@ -2458,6 +2499,7 @@ begin | @@ -2458,6 +2499,7 @@ begin | ||
2458 | v_strPalavraChave := StringReplace(v_strPalavraChave,'\' ,'<BarrInv>' ,[rfReplaceAll]); | 2499 | v_strPalavraChave := StringReplace(v_strPalavraChave,'\' ,'<BarrInv>' ,[rfReplaceAll]); |
2459 | v_strPalavraChave := g_oCacic.enCrypt(v_strPalavraChave); | 2500 | v_strPalavraChave := g_oCacic.enCrypt(v_strPalavraChave); |
2460 | v_strPalavraChave := StringReplace(v_strPalavraChave,'+','<MAIS>',[rfReplaceAll]); | 2501 | v_strPalavraChave := StringReplace(v_strPalavraChave,'+','<MAIS>',[rfReplaceAll]); |
2502 | + } | ||
2461 | 2503 | ||
2462 | v_strTeSO := trim(StringReplace(FormularioGeral.getValorDatMemoria('Configs.TE_SO', v_tstrCipherOpened),' ','<ESPACE>',[rfReplaceAll])); | 2504 | v_strTeSO := trim(StringReplace(FormularioGeral.getValorDatMemoria('Configs.TE_SO', v_tstrCipherOpened),' ','<ESPACE>',[rfReplaceAll])); |
2463 | v_strTeSO := g_oCacic.enCrypt(v_strTeSO); | 2505 | v_strTeSO := g_oCacic.enCrypt(v_strTeSO); |
@@ -2500,8 +2542,8 @@ begin | @@ -2500,8 +2542,8 @@ begin | ||
2500 | '[' + g_oCacic.enCrypt(FormularioGeral.getValorDatMemoria('Configs.Endereco_WS' , v_tstrCipherOpened)) + ']' + | 2542 | '[' + g_oCacic.enCrypt(FormularioGeral.getValorDatMemoria('Configs.Endereco_WS' , v_tstrCipherOpened)) + ']' + |
2501 | '[' + v_strTeSO + ']' + | 2543 | '[' + v_strTeSO + ']' + |
2502 | '[' + v_strTeNodeAddress + ']' + | 2544 | '[' + v_strTeNodeAddress + ']' + |
2503 | - '[' + v_strPalavraChave + ']' + | ||
2504 | - '[' + g_oCacic.getCacicPath + 'Temp\' + ']' + | 2545 | +// '[' + v_strPalavraChave + ']' + |
2546 | + '[' + g_oCacic.getCacicPath + ']' + | ||
2505 | '[' + v_strNuPortaSR + ']' + | 2547 | '[' + v_strNuPortaSR + ']' + |
2506 | '[' + v_strNuTimeOutSR + ']'); | 2548 | '[' + v_strNuTimeOutSR + ']'); |
2507 | 2549 | ||
@@ -2515,8 +2557,8 @@ begin | @@ -2515,8 +2557,8 @@ begin | ||
2515 | '[' + g_oCacic.enCrypt(FormularioGeral.getValorDatMemoria('Configs.Endereco_WS' , v_tstrCipherOpened)) + ']' + | 2557 | '[' + g_oCacic.enCrypt(FormularioGeral.getValorDatMemoria('Configs.Endereco_WS' , v_tstrCipherOpened)) + ']' + |
2516 | '[' + v_strTeSO + ']' + | 2558 | '[' + v_strTeSO + ']' + |
2517 | '[' + v_strTeNodeAddress + ']' + | 2559 | '[' + v_strTeNodeAddress + ']' + |
2518 | - '[' + v_strPalavraChave + ']' + | ||
2519 | - '[' + g_oCacic.getCacicPath + 'Temp\' + ']' + | 2560 | +// '[' + v_strPalavraChave + ']' + |
2561 | + '[' + g_oCacic.getCacicPath + ']' + | ||
2520 | '[' + v_strNuPortaSR + ']' + | 2562 | '[' + v_strNuPortaSR + ']' + |
2521 | '[' + v_strNuTimeOutSR + ']',false,SW_NORMAL); | 2563 | '[' + v_strNuTimeOutSR + ']',false,SW_NORMAL); |
2522 | BoolServerON := true; | 2564 | BoolServerON := true; |
mapa/mapacacic.res
No preview for this file type
testacrypt/main_testacrypt.pas
@@ -99,9 +99,11 @@ implementation | @@ -99,9 +99,11 @@ implementation | ||
99 | procedure TForm1.CriptografaPalavra; | 99 | procedure TForm1.CriptografaPalavra; |
100 | Begin | 100 | Begin |
101 | if (trim(form1.Edit_FraseOriginal.Text)<>'') then | 101 | if (trim(form1.Edit_FraseOriginal.Text)<>'') then |
102 | - Form1.Edit_FraseCriptografadaEnviadaEstacao.Text := g_oCacic.enCrypt(trim(form1.Edit_FraseOriginal.Text)) | ||
103 | - else if (trim(form1.Edit_FraseCriptografadaEnviadaEstacao.Text)<>'') then | ||
104 | - Form1.Edit_FraseOriginal.Text := g_oCacic.deCrypt(trim(form1.Edit_FraseCriptografadaEnviadaEstacao.Text)); | 102 | + Begin |
103 | + Form1.Edit_FraseCriptografadaEnviadaEstacao.Text := g_oCacic.enCrypt(trim(form1.Edit_FraseOriginal.Text)) | ||
104 | + //else if (trim(form1.Edit_FraseCriptografadaEnviadaEstacao.Text)<>'') then | ||
105 | + // Form1.Edit_FraseOriginal.Text := g_oCacic.deCrypt(trim(form1.Edit_FraseCriptografadaEnviadaEstacao.Text)); | ||
106 | + end; | ||
105 | End; | 107 | End; |
106 | 108 | ||
107 | procedure TForm1.Button_EfetuaTesteClick(Sender: TObject); | 109 | procedure TForm1.Button_EfetuaTesteClick(Sender: TObject); |
@@ -114,111 +116,113 @@ var v_retorno, | @@ -114,111 +116,113 @@ var v_retorno, | ||
114 | IdHTTP1: TIdHTTP; | 116 | IdHTTP1: TIdHTTP; |
115 | intAux : integer; | 117 | intAux : integer; |
116 | begin | 118 | begin |
117 | - | ||
118 | - boolProcessaPausa := true; | ||
119 | -// InicializaCampos; | ||
120 | - CriptografaPalavra; | ||
121 | - | ||
122 | - intAux := POS('255.255.255.255',Edit_ScriptPath.Text); | ||
123 | - if (intAux > 0) then | ||
124 | - Begin | ||
125 | - StatusBar_Mensagens.Panels[0].Text := 'ATENÇÃO: Caso não seja um teste local, informe um endereço válido.'; | ||
126 | - StatusBar_Mensagens.Color := clYellow; | ||
127 | - Edit_ScriptPath.SetFocus; | ||
128 | - End | ||
129 | - else | 119 | + if (Trim(Edit_FraseCriptografadaEnviadaEstacao.Text) <> '') then |
130 | Begin | 120 | Begin |
121 | + boolProcessaPausa := true; | ||
122 | + // InicializaCampos; | ||
123 | + CriptografaPalavra; | ||
131 | 124 | ||
132 | - Request_Config := TStringList.Create; | ||
133 | - Request_Config.Values['cs_operacao'] := 'TestaCrypt'; | ||
134 | - Request_Config.Values['cs_cipher'] := '1'; | ||
135 | - Request_Config.Values['te_CipheredText'] := trim(Form1.Edit_FraseCriptografadaEnviadaEstacao.Text); | ||
136 | - Response_Config := TStringStream.Create(''); | ||
137 | - | ||
138 | - Try | ||
139 | - idHTTP1 := TIdHTTP.Create(nil); | ||
140 | - idHTTP1.AllowCookies := true; | ||
141 | - idHTTP1.ASCIIFilter := false; | ||
142 | - idHTTP1.AuthRetries := 1; | ||
143 | - idHTTP1.BoundPort := 0; | ||
144 | - idHTTP1.HandleRedirects := false; | ||
145 | - idHTTP1.ProxyParams.BasicAuthentication := false; | ||
146 | - idHTTP1.ProxyParams.ProxyPort := 0; | ||
147 | - idHTTP1.ReadTimeout := 0; | ||
148 | - idHTTP1.RecvBufferSize := 32768; | ||
149 | - idHTTP1.RedirectMaximum := 15; | ||
150 | - idHTTP1.Request.Accept := 'text/html, */*'; | ||
151 | - idHTTP1.Request.BasicAuthentication := true; | ||
152 | - idHTTP1.Request.ContentLength := -1; | ||
153 | - idHTTP1.Request.ContentRangeStart := 0; | ||
154 | - idHTTP1.Request.ContentRangeEnd := 0; | ||
155 | - idHTTP1.Request.ContentType := 'text/html'; | ||
156 | - idHTTP1.SendBufferSize := 32768; | ||
157 | - idHTTP1.Tag := 0; | ||
158 | - | ||
159 | - Form1.StatusBar_Mensagens.Panels[0].Text := 'Fazendo comunicação com "'+form1.Edit_ScriptPath.Text+'"'; | ||
160 | - Sleep(1000); | ||
161 | - Form1.StatusBar_Mensagens.Panels[0].Text := ''; | ||
162 | - | ||
163 | - IdHTTP1.Post(trim(Form1.Edit_ScriptPath.Text), Request_Config, Response_Config); | ||
164 | - | ||
165 | - //ShowMessage('Retorno: '+Response_Config.DataString); | ||
166 | - idHTTP1.Free; | ||
167 | - v_retorno := Response_Config.DataString; | ||
168 | - v_Status := XML_RetornaValor('STATUS',v_retorno); | ||
169 | - Except | 125 | + intAux := POS('255.255.255.255',Edit_ScriptPath.Text); |
126 | + if (intAux > 0) then | ||
170 | Begin | 127 | Begin |
171 | - Form1.StatusBar_Mensagens.Panels[0].Text := 'Problemas na comunicação...'; | ||
172 | - Sleep(1000); | ||
173 | - Form1.StatusBar_Mensagens.Panels[0].Text := ''; | ||
174 | - End; | ||
175 | - End; | ||
176 | - Request_Config.Free; | ||
177 | - Response_Config.Free; | ||
178 | - | ||
179 | - if (v_Status <> '') then | 128 | + StatusBar_Mensagens.Panels[0].Text := 'ATENÇÃO: Caso não seja um teste local, informe um endereço válido.'; |
129 | + StatusBar_Mensagens.Color := clYellow; | ||
130 | + Edit_ScriptPath.SetFocus; | ||
131 | + End | ||
132 | + else | ||
180 | Begin | 133 | Begin |
181 | - v_strAux := XML_RetornaValor('UnCipheredText',v_retorno); | ||
182 | - form1.Edit_IVServer.Text := XML_RetornaValor('IVServer',v_retorno); | ||
183 | - form1.Edit_CipherKeyServer.Text := XML_RetornaValor('CipherKeyServer',v_retorno); | ||
184 | - form1.Edit_FraseCriptografadaRecebidaServidor.Text := XML_RetornaValor('CipheredTextRecepted',v_retorno); | ||
185 | - form1.Edit_OperacaoRecebidaServidor.Text := XML_RetornaValor('CS_OPERACAO',v_retorno); | ||
186 | - if (v_strAux <> '') then | 134 | + |
135 | + Request_Config := TStringList.Create; | ||
136 | + Request_Config.Values['cs_operacao'] := 'TestaCrypt'; | ||
137 | + Request_Config.Values['cs_cipher'] := '1'; | ||
138 | + Request_Config.Values['te_CipheredText'] := trim(Form1.Edit_FraseCriptografadaEnviadaEstacao.Text); | ||
139 | + Response_Config := TStringStream.Create(''); | ||
140 | + | ||
141 | + Try | ||
142 | + idHTTP1 := TIdHTTP.Create(nil); | ||
143 | + idHTTP1.AllowCookies := true; | ||
144 | + idHTTP1.ASCIIFilter := false; | ||
145 | + idHTTP1.AuthRetries := 1; | ||
146 | + idHTTP1.BoundPort := 0; | ||
147 | + idHTTP1.HandleRedirects := false; | ||
148 | + idHTTP1.ProxyParams.BasicAuthentication := false; | ||
149 | + idHTTP1.ProxyParams.ProxyPort := 0; | ||
150 | + idHTTP1.ReadTimeout := 0; | ||
151 | + idHTTP1.RecvBufferSize := 32768; | ||
152 | + idHTTP1.RedirectMaximum := 15; | ||
153 | + idHTTP1.Request.Accept := 'text/html, */*'; | ||
154 | + idHTTP1.Request.BasicAuthentication := true; | ||
155 | + idHTTP1.Request.ContentLength := -1; | ||
156 | + idHTTP1.Request.ContentRangeStart := 0; | ||
157 | + idHTTP1.Request.ContentRangeEnd := 0; | ||
158 | + idHTTP1.Request.ContentType := 'text/html'; | ||
159 | + idHTTP1.SendBufferSize := 32768; | ||
160 | + idHTTP1.Tag := 0; | ||
161 | + | ||
162 | + Form1.StatusBar_Mensagens.Panels[0].Text := 'Fazendo comunicação com "'+form1.Edit_ScriptPath.Text+'"'; | ||
163 | + Sleep(1000); | ||
164 | + Form1.StatusBar_Mensagens.Panels[0].Text := ''; | ||
165 | + | ||
166 | + IdHTTP1.Post(trim(Form1.Edit_ScriptPath.Text), Request_Config, Response_Config); | ||
167 | + | ||
168 | + //ShowMessage('Retorno: '+Response_Config.DataString); | ||
169 | + idHTTP1.Free; | ||
170 | + v_retorno := Response_Config.DataString; | ||
171 | + v_Status := XML_RetornaValor('STATUS',v_retorno); | ||
172 | + Except | ||
187 | Begin | 173 | Begin |
188 | - form1.Edit_FraseDecriptografadaDevolvidaServidor.Text := v_strAux; | ||
189 | - if (trim(form1.Edit_FraseDecriptografadaDevolvidaServidor.Text) <> trim(form1.Edit_FraseOriginal.Text)) then | 174 | + Form1.StatusBar_Mensagens.Panels[0].Text := 'Problemas na comunicação...'; |
175 | + Sleep(1000); | ||
176 | + Form1.StatusBar_Mensagens.Panels[0].Text := ''; | ||
177 | + End; | ||
178 | + End; | ||
179 | + Request_Config.Free; | ||
180 | + Response_Config.Free; | ||
181 | + | ||
182 | + if (v_Status <> '') then | ||
183 | + Begin | ||
184 | + v_strAux := XML_RetornaValor('UnCipheredText',v_retorno); | ||
185 | + form1.Edit_IVServer.Text := XML_RetornaValor('IVServer',v_retorno); | ||
186 | + form1.Edit_CipherKeyServer.Text := XML_RetornaValor('CipherKeyServer',v_retorno); | ||
187 | + form1.Edit_FraseCriptografadaRecebidaServidor.Text := XML_RetornaValor('CipheredTextRecepted',v_retorno); | ||
188 | + form1.Edit_OperacaoRecebidaServidor.Text := XML_RetornaValor('CS_OPERACAO',v_retorno); | ||
189 | + if (v_strAux <> '') then | ||
190 | Begin | 190 | Begin |
191 | - form1.Edit_FraseDecriptografadaDevolvidaServidor.Font.Color := clRed; | ||
192 | - if (Edit_CipherKeyStation.Text <> Edit_CipherKeyServer.Text) then | 191 | + form1.Edit_FraseDecriptografadaDevolvidaServidor.Text := v_strAux; |
192 | + if (trim(form1.Edit_FraseDecriptografadaDevolvidaServidor.Text) <> trim(form1.Edit_FraseOriginal.Text)) then | ||
193 | Begin | 193 | Begin |
194 | - Edit_CipherKeyStation.Color := clYellow; | ||
195 | - Edit_CipherKeyServer.Color := clYellow; | ||
196 | - End; | ||
197 | - if (Edit_IVStation.Text <> Edit_IVServer.Text) then | ||
198 | - Begin | ||
199 | - Edit_IVStation.Color := clYellow; | ||
200 | - Edit_IVServer.Color := clYellow; | ||
201 | - End; | ||
202 | - | 194 | + form1.Edit_FraseDecriptografadaDevolvidaServidor.Font.Color := clRed; |
195 | + if (Edit_CipherKeyStation.Text <> Edit_CipherKeyServer.Text) then | ||
196 | + Begin | ||
197 | + Edit_CipherKeyStation.Color := clYellow; | ||
198 | + Edit_CipherKeyServer.Color := clYellow; | ||
199 | + End; | ||
200 | + if (Edit_IVStation.Text <> Edit_IVServer.Text) then | ||
201 | + Begin | ||
202 | + Edit_IVStation.Color := clYellow; | ||
203 | + Edit_IVServer.Color := clYellow; | ||
204 | + End; | ||
205 | + | ||
206 | + End | ||
207 | + else | ||
208 | + form1.Edit_FraseDecriptografadaDevolvidaServidor.Font.Color := clBlue; | ||
203 | End | 209 | End |
204 | else | 210 | else |
205 | - form1.Edit_FraseDecriptografadaDevolvidaServidor.Font.Color := clBlue; | 211 | + Begin |
212 | + form1.Edit_FraseDecriptografadaDevolvidaServidor.Text := 'NÃO FOI POSSÍVEL DECRIPTOGRAFAR!!!'; | ||
213 | + form1.Edit_FraseDecriptografadaDevolvidaServidor.Font.Style := [fsBold]; | ||
214 | + form1.Edit_FraseDecriptografadaDevolvidaServidor.Font.Color := clRed; | ||
215 | + End; | ||
216 | + Form1.StatusBar_Mensagens.Panels[0].Text := 'Teste Concluído!'; | ||
206 | End | 217 | End |
207 | else | 218 | else |
208 | Begin | 219 | Begin |
209 | - form1.Edit_FraseDecriptografadaDevolvidaServidor.Text := 'NÃO FOI POSSÍVEL DECRIPTOGRAFAR!!!'; | ||
210 | - form1.Edit_FraseDecriptografadaDevolvidaServidor.Font.Style := [fsBold]; | ||
211 | - form1.Edit_FraseDecriptografadaDevolvidaServidor.Font.Color := clRed; | 220 | + Form1.StatusBar_Mensagens.Panels[0].Text := 'Problemas na comunicação...'; |
221 | + Sleep(1000); | ||
222 | + Form1.StatusBar_Mensagens.Panels[0].Text := ''; | ||
212 | End; | 223 | End; |
213 | - Form1.StatusBar_Mensagens.Panels[0].Text := 'Teste Concluído!'; | ||
214 | - End | ||
215 | - else | ||
216 | - Begin | ||
217 | - Form1.StatusBar_Mensagens.Panels[0].Text := 'Problemas na comunicação...'; | ||
218 | - Sleep(1000); | ||
219 | - Form1.StatusBar_Mensagens.Panels[0].Text := ''; | ||
220 | End; | 224 | End; |
221 | - End; | 225 | + end; |
222 | end; | 226 | end; |
223 | // Pad a string with zeros so that it is a multiple of size | 227 | // Pad a string with zeros so that it is a multiple of size |
224 | function TForm1.PadWithZeros(const str : string; size : integer) : string; | 228 | function TForm1.PadWithZeros(const str : string; size : integer) : string; |