Commit 16c9dc7cfb47928fc8c5565ab797a47227e970df

Authored by Adriano Vieira
1 parent 5906e45e
Exists in master

- Exclusão de arquivos desnecessários no repositório

git-svn-id: http://svn.softwarepublico.gov.br/svn/cacic/cacic/trunk/agente-windows@768 fecfc0c7-e812-0410-ae72-849f08638ee7
cacicservice/CACICsvc.~dpr
@@ -1,29 +0,0 @@ @@ -1,29 +0,0 @@
1 -(**  
2 ----------------------------------------------------------------------------------------------------------------------------------------------------------------  
3 -Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 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 -program CACICsvc;  
18 -  
19 -uses  
20 - SvcMgr,  
21 - CACICsvcMain in 'CACICsvcMain.pas' {CACICservice: TService};  
22 -  
23 -{$R *.RES}  
24 -  
25 -begin  
26 - Application.Initialize;  
27 - Application.CreateForm(TCACICservice, CACICservice);  
28 - Application.Run;  
29 -end.  
cacicservice/CACICsvcMain.dcu
No preview for this file type
cacicservice/CACICsvcMain.~ddp
No preview for this file type
cacicservice/CACICsvcMain.~dfm
@@ -1,20 +0,0 @@ @@ -1,20 +0,0 @@
1 -object CACICservice: TCACICservice  
2 - OldCreateOrder = False  
3 - DisplayName = 'CACICservice'  
4 - Interactive = True  
5 - AfterInstall = ServiceAfterInstall  
6 - OnExecute = ServiceExecute  
7 - OnStart = ServiceStart  
8 - OnStop = ServiceStop  
9 - Left = 192  
10 - Top = 107  
11 - Height = 375  
12 - Width = 544  
13 - object Timer_CHKsis: TTimer  
14 - Enabled = False  
15 - Interval = 60000  
16 - OnTimer = Timer_CHKsisTimer  
17 - Left = 464  
18 - Top = 16  
19 - end  
20 -end  
cacicservice/CACICsvcMain.~pas
@@ -1,234 +0,0 @@ @@ -1,234 +0,0 @@
1 -(**  
2 ----------------------------------------------------------------------------------------------------------------------------------------------------------------  
3 -Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 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 -unit CACICsvcMain;  
18 -  
19 -interface  
20 -  
21 -uses  
22 - Windows, Messages, SysUtils, Classes, SvcMgr,strutils, ExtCtrls;  
23 -  
24 -var strHomeDrive,  
25 - strCacicDir : String;  
26 - boolStarted : boolean;  
27 -  
28 -type  
29 - TCACICservice = class(TService)  
30 - Timer_CHKsis: TTimer;  
31 - procedure ServiceExecute(Sender: TService);  
32 - procedure ServiceStart(Sender: TService; var Started: Boolean);  
33 - procedure ServiceAfterInstall(Sender: TService);  
34 - procedure Timer_CHKsisTimer(Sender: TObject);  
35 - procedure ServiceStop(Sender: TService; var Stopped: Boolean);  
36 - private  
37 -  
38 - { Internal Start & Stop methods }  
39 - function HomeDrive : string;  
40 - function GetValorChaveRegIni(p_Secao, p_Chave, p_File : String): String;  
41 - function GetAppPath: String;  
42 - procedure doSaveLog(Msg : String);  
43 - Procedure WMEndSession(var Msg : TWMEndSession) ; message WM_ENDSESSION;  
44 - procedure ExecutaCACIC;  
45 - public  
46 - { Public declarations }  
47 -  
48 - function GetServiceController: TServiceController; override;  
49 - end;  
50 -  
51 -var  
52 - CACICservice: TCACICservice;  
53 -  
54 -implementation  
55 -  
56 -{$R *.DFM}  
57 -procedure TCACICservice.WMEndSession(var Msg : TWMEndSession) ;  
58 -begin  
59 - if Msg.EndSession = TRUE then  
60 - doSaveLog('Windows finalizado em ' + FormatDateTime('c', Now)) ;  
61 - inherited;  
62 - Application.Free;  
63 -end;  
64 -// Funções Auxiliares  
65 -function TCACICservice.GetValorChaveRegIni(p_Secao, p_Chave, p_File : String): String;  
66 -//Para buscar do Arquivo INI...  
67 -// Marreta devido a limitações do KERNEL w9x no tratamento de arquivos texto e suas seções  
68 -//function GetValorChaveRegIni(p_SectionName, p_KeyName, p_IniFileName : String) : String;  
69 -var  
70 - FileText : TStringList;  
71 - i, j, v_Size_Section, v_Size_Key : integer;  
72 - v_SectionName, v_KeyName : string;  
73 - begin  
74 -//doSaveLog('GetVCRini: Secao: '+p_Secao+' Chave: '+p_Chave+' File: '+p_File);  
75 - Result := '';  
76 - v_SectionName := '[' + p_Secao + ']';  
77 - v_Size_Section := strLen(PChar(v_SectionName));  
78 - v_KeyName := p_Chave + '=';  
79 - v_Size_Key := strLen(PChar(v_KeyName));  
80 - FileText := TStringList.Create;  
81 - try  
82 - FileText.LoadFromFile(p_File);  
83 - For i := 0 To FileText.Count - 1 Do  
84 - Begin  
85 - if (LowerCase(Trim(PChar(Copy(FileText[i],1,v_Size_Section)))) = LowerCase(Trim(PChar(v_SectionName)))) then  
86 - Begin  
87 - For j := i to FileText.Count - 1 Do  
88 - Begin  
89 - if (LowerCase(Trim(PChar(Copy(FileText[j],1,v_Size_Key)))) = LowerCase(Trim(PChar(v_KeyName)))) then  
90 - Begin  
91 - Result := PChar(Copy(FileText[j],v_Size_Key + 1,strLen(PChar(FileText[j]))-v_Size_Key));  
92 - Break;  
93 - End;  
94 - End;  
95 - End;  
96 - if (Result <> '') then break;  
97 - End;  
98 - finally  
99 - FileText.Free;  
100 - end;  
101 - end;  
102 -  
103 -function TCACICservice.GetAppPath: String;  
104 -Var  
105 - Test : String;  
106 - Res : Longint;  
107 - CurSize : Longint;  
108 -begin  
109 - CurSize := 1024;  
110 - SetLength(Test, CurSize);  
111 - Res := GetModuleFilename(GetModuleHandle(nil), PChar(test), CurSize);  
112 - If (res > curSize) then  
113 - begin  
114 - CurSize := res + 10;  
115 - SetLength(Test, CurSize);  
116 - Res := GetModuleFilename(GetModuleHandle(nil), PChar(test), CurSize);  
117 - end;  
118 - Setlength(Test, Res);  
119 - test := ExtractFileDir(Test);  
120 - if (test[Length(test)] = '\') or (test[Length(test)]='/') then  
121 - SetLength(Test, Length(test) - 1);  
122 - Result := test;  
123 -end;  
124 -  
125 -function TCACICservice.HomeDrive : string;  
126 -var WinDir : array [0..144] of char;  
127 -begin  
128 - GetWindowsDirectory (WinDir, 144);  
129 - Result := StrPas (WinDir);  
130 -end;  
131 -  
132 -procedure TCACICservice.doSaveLog(Msg : String);  
133 -var fLog: textfile;  
134 -begin  
135 - AssignFile(fLog, HomeDrive + '\CACICsvc.log');  
136 - if FileExists(HomeDrive + '\CACICsvc.log') then  
137 - Append(fLog)  
138 - else  
139 - Rewrite(fLog);  
140 - Writeln(fLog,FormatDateTime('dd/mm hh:nn:ss ', Now) + '[CACICsvc] : ' +msg);  
141 - CloseFile(fLog);  
142 -End;  
143 -  
144 -procedure ServiceController(CtrlCode: DWord); stdcall;  
145 -begin  
146 - CACICservice.Controller(CtrlCode);  
147 -end;  
148 -  
149 -function TCACICservice.GetServiceController: TServiceController;  
150 -begin  
151 - Result := ServiceController;  
152 -end;  
153 -  
154 -procedure TCACICservice.ServiceExecute(Sender: TService);  
155 -begin  
156 - doSaveLog('TCACICservice.ServiceExecute');  
157 -  
158 - { Loop while service is active in SCM }  
159 - While NOT Terminated do  
160 - Begin  
161 - { Process Service Requests }  
162 - ServiceThread.ProcessRequests( False );  
163 - { Allow system some time }  
164 - Sleep(1);  
165 - End;  
166 -end;  
167 -  
168 -procedure TCACICservice.ServiceStart(Sender: TService; var Started: Boolean);  
169 -begin  
170 -  
171 - Started := true;  
172 -  
173 - ExecutaCACIC;  
174 -  
175 - Timer_CHKsis.Interval := 60000;  
176 - Timer_CHKsis.Enabled := true;  
177 -  
178 - While not Terminated do  
179 - Sleep(250);  
180 -  
181 -  
182 -end;  
183 -  
184 -procedure TCACICservice.ExecutaCACIC;  
185 -Begin  
186 -  
187 - strHomeDrive := MidStr(HomeDrive,1,3); //x:\  
188 - strCacicDir := strHomeDrive + GetValorChaveRegIni('Cacic2', 'cacic_dir', GetAppPath + '\chksis.ini');  
189 -  
190 - DeleteFile(strCacicDir + '\aguarde_CACIC.txt');  
191 - Sleep(3000);  
192 -  
193 - // Se o arquivo indicador de execução não existir...  
194 - if not (FileExists(strCacicDir + '\aguarde_CACIC.txt')) then  
195 - Begin  
196 - // Executo o CHKsis, verificando a estrutura do sistema  
197 - Try  
198 - WinEXEC(PChar(HomeDrive + '\chksis.exe'),sw_HIDE);  
199 - Except  
200 - End;  
201 -  
202 - While not (FileExists(strCacicDir + '\cacic2.exe')) do  
203 - Sleep(5000); // Espero 5 segundos...  
204 - End;  
205 -  
206 -  
207 - // Executo o Agente Principal do CACIC  
208 - Try  
209 - WinEXEC(PChar(strCacicDir + '\cacic2.exe'),sw_hide);  
210 - Except  
211 - End;  
212 -End;  
213 -  
214 -procedure TCACICservice.ServiceAfterInstall(Sender: TService);  
215 -  
216 -begin  
217 - ServiceStart(nil,boolStarted);  
218 -end;  
219 -  
220 -procedure TCACICservice.Timer_CHKsisTimer(Sender: TObject);  
221 -begin  
222 - ExecutaCACIC;  
223 -  
224 - // Verificações diversas  
225 -  
226 -end;  
227 -  
228 -procedure TCACICservice.ServiceStop(Sender: TService;  
229 - var Stopped: Boolean);  
230 -begin  
231 - Stopped := true;  
232 -end;  
233 -  
234 -end.  
cacicservice/CACICsvcThread.dcu
No preview for this file type
cacicservice/CACICsvcThread.~pas
@@ -1,202 +0,0 @@ @@ -1,202 +0,0 @@
1 -(*  
2 - A Windows NT Service Thread  
3 - ===========================  
4 -  
5 - Author Kim Sandell  
6 - Email: kim.sandell@nsftele.com  
7 -*)  
8 -unit CACICsvcThread;  
9 -  
10 -interface  
11 -  
12 -uses  
13 - Windows, Messages, SysUtils, Classes, StrUtils;  
14 -  
15 -var strHomeDrive,  
16 - strCacicDir : String;  
17 -  
18 -type  
19 - TNTServiceThread = Class(TThread)  
20 - private  
21 - { Private declarations }  
22 - function HomeDrive : string;  
23 - function GetValorChaveRegIni(p_Secao, p_Chave, p_File : String): String;  
24 - function GetAppPath: String;  
25 - procedure doSaveLog(Msg : String);  
26 - function CreateProcessSimple(sExecutableFilePath : string ) : String;  
27 - Public  
28 - { Public declarations }  
29 - Interval : Integer;  
30 -  
31 - Procedure Execute; Override;  
32 - Published  
33 - { Published declarations }  
34 - End;  
35 -  
36 -implementation  
37 -  
38 -{ TNTServiceThread }  
39 -// Funções Auxiliares  
40 -function TNTServiceThread.GetValorChaveRegIni(p_Secao, p_Chave, p_File : String): String;  
41 -//Para buscar do Arquivo INI...  
42 -// Marreta devido a limitações do KERNEL w9x no tratamento de arquivos texto e suas seções  
43 -//function GetValorChaveRegIni(p_SectionName, p_KeyName, p_IniFileName : String) : String;  
44 -var  
45 - FileText : TStringList;  
46 - i, j, v_Size_Section, v_Size_Key : integer;  
47 - v_SectionName, v_KeyName : string;  
48 - begin  
49 -//doSaveLog('GetVCRini: Secao: '+p_Secao+' Chave: '+p_Chave+' File: '+p_File);  
50 - Result := '';  
51 - v_SectionName := '[' + p_Secao + ']';  
52 - v_Size_Section := strLen(PChar(v_SectionName));  
53 - v_KeyName := p_Chave + '=';  
54 - v_Size_Key := strLen(PChar(v_KeyName));  
55 - FileText := TStringList.Create;  
56 - try  
57 - FileText.LoadFromFile(p_File);  
58 - For i := 0 To FileText.Count - 1 Do  
59 - Begin  
60 - if (LowerCase(Trim(PChar(Copy(FileText[i],1,v_Size_Section)))) = LowerCase(Trim(PChar(v_SectionName)))) then  
61 - Begin  
62 - For j := i to FileText.Count - 1 Do  
63 - Begin  
64 - if (LowerCase(Trim(PChar(Copy(FileText[j],1,v_Size_Key)))) = LowerCase(Trim(PChar(v_KeyName)))) then  
65 - Begin  
66 - Result := PChar(Copy(FileText[j],v_Size_Key + 1,strLen(PChar(FileText[j]))-v_Size_Key));  
67 - Break;  
68 - End;  
69 - End;  
70 - End;  
71 - if (Result <> '') then break;  
72 - End;  
73 - finally  
74 - FileText.Free;  
75 - end;  
76 - end;  
77 -  
78 -function TNTServiceThread.GetAppPath: String;  
79 -Var  
80 - Test : String;  
81 - Res : Longint;  
82 - CurSize : Longint;  
83 -begin  
84 - CurSize := 1024;  
85 - SetLength(Test, CurSize);  
86 - Res := GetModuleFilename(GetModuleHandle(nil), PChar(test), CurSize);  
87 - If (res > curSize) then  
88 - begin  
89 - CurSize := res + 10;  
90 - SetLength(Test, CurSize);  
91 - Res := GetModuleFilename(GetModuleHandle(nil), PChar(test), CurSize);  
92 - end;  
93 - Setlength(Test, Res);  
94 - test := ExtractFileDir(Test);  
95 - if (test[Length(test)] = '\') or (test[Length(test)]='/') then  
96 - SetLength(Test, Length(test) - 1);  
97 - Result := test;  
98 -end;  
99 -  
100 -function TNTServiceThread.HomeDrive : string;  
101 -var WinDir : array [0..144] of char;  
102 -begin  
103 - GetWindowsDirectory (WinDir, 144);  
104 - Result := StrPas (WinDir);  
105 -end;  
106 -  
107 -procedure TNTServiceThread.doSaveLog(Msg : String);  
108 -var fLog: textfile;  
109 -begin  
110 - AssignFile(fLog, strHomeDrive + 'CACICsvc.log');  
111 - if FileExists(strHomeDrive + 'CACICsvc.log') then  
112 - Append(fLog)  
113 - else  
114 - Rewrite(fLog);  
115 - Writeln(fLog,FormatDateTime('dd/mm hh:nn:ss ', Now) + '[CACICsvc] : ' +msg);  
116 - CloseFile(fLog);  
117 -End;  
118 -  
119 -function TNTServiceThread.CreateProcessSimple(sExecutableFilePath : string ) : string;  
120 -var  
121 - pi: TProcessInformation;  
122 - si: TStartupInfo;  
123 -begin  
124 - FillMemory( @si, sizeof( si ), 0 );  
125 - si.cb := sizeof( si );  
126 -  
127 - CreateProcess(  
128 - Nil,  
129 - PChar( sExecutableFilePath ),  
130 - Nil, Nil, False,  
131 - NORMAL_PRIORITY_CLASS, Nil, Nil,  
132 - si, pi );  
133 -  
134 - // "after calling code" such as  
135 - // the code to wait until the  
136 - // process is done should go here  
137 -  
138 - CloseHandle( pi.hProcess );  
139 - CloseHandle( pi.hThread );  
140 -end;  
141 -  
142 -procedure TNTServiceThread.Execute;  
143 -begin  
144 - strHomeDrive := MidStr(HomeDrive,1,3); //x:\  
145 - doSaveLog('strHomeDrive: '+strHomeDrive);  
146 -  
147 - strCacicDir := strHomeDrive + GetValorChaveRegIni('Cacic2', 'cacic_dir', GetAppPath + '\chksis.ini');  
148 - doSaveLog('strCacicDir: '+strCacicDir);  
149 -  
150 - // Executo o CHKsis, verificando a estrutura do sistema  
151 - Try  
152 - CreateProcessSimple(PChar(HomeDrive + '\chksis.exe'));  
153 - Except  
154 - End;  
155 -  
156 - While not (FileExists(strCacicDir + '\cacic2.exe')) do  
157 - Sleep(5000); // Espero 5 segundos...  
158 -  
159 - // Executo o Agente Principal do CACIC  
160 - Try  
161 - doSaveLog('Executarei "'+strCacicDir + '\cacic2.exe"');  
162 - CreateProcessSimple(PChar(strCacicDir + '\cacic2.exe'));  
163 - Except  
164 - End;  
165 -  
166 - While not Terminated do  
167 - Sleep(250);  
168 -  
169 - {  
170 - // Do NOT free on termination - The Serivce frees the Thread  
171 - FreeOnTerminate := False;  
172 -  
173 - // Set Interval  
174 - TimeOut := Interval * 4;  
175 -  
176 - // Main Loop  
177 - Try  
178 - While Not Terminated do  
179 - Begin  
180 - // Decrement timeout  
181 - Dec( TimeOut );  
182 -  
183 - If (TimeOut=0) then  
184 - Begin  
185 - // Reset timer  
186 - TimeOut := Interval * 4;  
187 -  
188 - // Beep once per x seconds  
189 - Beep;  
190 - End;  
191 - // Wait 1/4th of a second  
192 - Sleep(250);  
193 - End;  
194 - Except  
195 - On E:Exception do ; // TODO: Exception logging...  
196 - End;  
197 - // Terminate the Thread - This signals Terminated=True  
198 - Terminate;  
199 - }  
200 -end;  
201 -  
202 -end.