Диплом: Автоматизация мониторинга служб приема данных с навигационных приборов

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
TrayIcon1.hint := TrayIcon1.Hint + Memo1.Lines[ii]+#10; // беремзначенияиз memo1
идобовляемв hint
end;
procedure TForm1.ReadParams; //Процедураченияпараметровиз ini файла
Var
i: integer;
begin
InF := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'settings.ini'); //
создаемпеременную
try
InF.ReadSection('Services',ListServiceName); //Загрузкаспискадляпроверкислужб
InF.ReadSectionValues('Services',ListServices); //Загрузкаспискадля memo2
begin
if Trackbar1.Position=1 then
IntervalCheck:=30000;
if Trackbar1.Position=2 then
IntervalCheck:=60000;
if Trackbar1.Position=3 then
IntervalCheck:=300000;
if Trackbar1.Position=4 then
IntervalCheck:=600000;
end;
Trackbar1.Position:=InF.ReadInteger('Time position','Pos:',Trackbar1.Position);
CheckBox2.Checked:=InF.ReadBool('AutoStart','Pos:',CheckBox3.Checked);
CheckBox3.Checked:=InF.ReadBool('AutoSend','Pos:',CheckBox3.Checked);
email.text:=InF.Readstring('Email','For:','');
host.text:=InF.Readstring('Email','Host:','');
port.text:=InF.Readstring('Email','Port:','');
adress_from.text:=InF.Readstring('Email','Adress from:','');
pass.text:=InF.Readstring('Email','pass:','');
finally
InF.Free; // если сами создаем, то сами уничтожаем.
end;
Memo2.Lines.Assign(ListServices);
end;
procedure TForm1.WriteParams; //Процедураченияпараметровиз ini файла
begin
InF := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'settings.ini'); //
создаемпеременную
InF.WriteString('Email','For:',email.text);
InF.WriteBool('AutoStart','Pos:',CheckBox2.Checked);
InF.WriteBool('AutoSend','Pos:',CheckBox3.Checked);
InF.WriteString('Email','For:',email.text);
InF.WriteString('Email','Adress from:',adress_from.text);
InF.WriteString('Email','Host:',host.text);
InF.WriteString('Email','Pass:',pass.text);
InF.WriteString('Email','Port:',port.text);
InF.Free; // если сами создаем, то сами уничтожаем
end;
procedure TForm1.WriteParamsMemo; //Процедура чения параметров из ini файла
Var
i: integer;
begin
IF Memo2.lines.count = 0 then exit;
InF := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'settings.ini'); //
создаемпеременную
FOR I:=0 to Memo2.lines.count - 1 do
InF.WriteString('Services', Inttostr(i)+':', Memo2.lines.strings[i]);
InF.Free; // если сами создаем, то сами уничтожаем
end;
procedure TForm1.SMTPSettings;
begin
IdSMTP1.Host:= 'smtp.sibtransnavi.com'; //задаем host
IdSMTP1.Username:= 'report@sibtransnavi.com'; //задаемлогин
IdSMTP1.Password:= 'tzhOHqD2'; //задаем пароль от почты
IdSMTP1.Port:=25; //задаемпорт
end;
procedure TForm1.SMTPSend;
begin
IdMessage1.Subject:= 'Падение службы'; //Тема письма.
IdMessage1.Recipients.EMailAddresses:=email.text; //Адресполучателя.
IdMessage1.From.Address:= 'report@sibtransnavi.com'; //email скоторогоидётотправка.
IdMessage1.Body.Text:= 'Dear system administrator.'#10'This work makes me cry, so I stop
working :(' ; //тексткоторыйхотимпослать.
IdSMTP1.connect; //соединяемся
IdSMTP1.Send(IdMessage1); //отправляем
IdSMTP1.Disconnect; //отсоединяемся
end;
procedure TForm1.log; // процедурасоздания log файла
begin
Time_ON := TimeToStr(Now) + ' ' + Label1.Caption; // собираемсообщение
AssignFile(f, DateToStr(Now) + '.log'); // назначаемзначение FileName значению
FileHandle приподготовкекчтению
{$I-}
Append(f);
{$I+}
if IOResult = 0 then // прикаждомзапускепрограммы
// после первого (файл .log уже создан)
begin
Writeln(f, Time_ON);
CloseFile(f);
end
else
begin
ReWrite(f); // припервомзапускепрограммы
Writeln(f, Time_ON);
CloseFile(f);
end;
Memo1.Lines.Add(Time_ON);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ListServices:=TStringList.Create;
ListServiceName:=TStringList.Create;
ReadParams; // выполняемфункцию
SMTPSettings; // выполняемфункцию
Timer1.Interval:=IntervalCheck;
if CheckBox2.Checked=false then
Timer1.Enabled:=false;
end;
procedure TForm1.Memo2DblClick(Sender: TObject); // отобразитьформусослужбами
begin
in_se.show;
end;
procedure TForm1.emailChange(Sender: TObject);
begin
InF := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'settings.ini'); //
создаемпеременную
InF.WriteString('Email','For:',email.text);
end;
procedure TForm1.adress_fromChange(Sender: TObject);
begin
InF := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'settings.ini'); //
создаемпеременную
InF.WriteString('Email','Adress from:',adress_from.text);
end;
procedure TForm1.hostChange(Sender: TObject);
begin
InF := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'settings.ini'); //
создаемпеременную
InF.WriteString('Email','Host:',host.text);
end;
procedure TForm1.passChange(Sender: TObject);
begin
InF := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'settings.ini'); //
создаемпеременную
InF.WriteString('Email','Pass:',pass.text);
end;
procedure TForm1.portChange(Sender: TObject);
begin
InF := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'settings.ini'); //
создаемпеременную
InF.WriteString('Email','Port:',port.text);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
ssStatus: SERVICE_STATUS;
schSCManager: SC_Handle;
schService: SC_Handle;
ii: integer;
begin
for ii:=0 to ListServices.Count-1 do begin
NameService := ListServices.Values[ListServiceName.Strings[ii]];
schSCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if schSCManager = 0 then
RaiseLastOSError;
schService := OpenService(schSCManager, PWideChar(NameService),
SERVICE_ALL_ACCESS);
if schService = 0 then
RaiseLastOSError;
QueryServiceStatus(schService, ssStatus);
if (ssStatus.dwCurrentState = SERVICE_RUNNING) then
begin
Label1.Caption := 'Служба: '+NameService+' '+' запущена';
log;
end else begin
Label1.Caption := 'Служба: '+NameService+' '+' незапущена';
if CheckBox3.Checked=true then
SMTPSend;
log;
if Trayicon1.Visible=True then
AlarmHint;
end;
end;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
if Form1.Width < 710 then
begin
Form1.Width:=Form1.Width+20;
Button1.caption:='<';
end
else
Timer2.Enabled:=false;
end;
procedure TForm1.ApplyBTNClick(Sender: TObject);
Var
i: integer;
FullProgPath: PAnsiChar;
begin
InF := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'settings.ini'); //
создаемпеременную
IF Memo2.lines.count = 0 then exit;
FOR I:=0 to Memo2.lines.count - 1 do
InF.WriteString('Services', Inttostr(i)+':', Memo2.lines.strings[i]);
//WriteParams;
InF.Free;
begin
WinExec(PAnsiChar('Companion.exe'), SW_SHOW); // Запускаемнеобходимыйфайл
Application.Terminate; // закрываемпрограмму
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if Button1.Caption='>' then
Timer2.Enabled:=not Timer2.Enabled else
Form1.Width:=428;
Button1.Caption:='>';
end;
procedure TForm1.CheckBox2Click(Sender: TObject);
begin
InF := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'settings.ini'); //
создаемпеременную
InF.WriteBool('AutoStart','Pos:',CheckBox2.Checked);
if CheckBox2.Checked=false then
Timer1.Enabled:=false else
Timer1.Enabled:=true;
end;
procedure TForm1.CheckBox3Click(Sender: TObject);
begin
InF := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'settings.ini'); //
создаемпеременную
InF.WriteBool('AutoSend','Pos:',CheckBox3.Checked);
end;
procedure TForm1.ForciblyBTNClick(Sender: TObject);
begin
Timer1.OnTimer(sender); //генерируем событие OnTimer в не зависимости от статуса
таймера
end;
procedure TForm1.WMSysCommand(var Msg: TWMSysCommand); //
сворачиваемвсевтрей
begin
if Msg.CmdType = SC_MINIMIZE then // еслиформасворачиваетсято
begin
Form1.Hide; // скрываемформу
TrayIcon1.Visible := True; // активируемиконкувтрее
Trayicon1.IconIndex:=0;
end;
inherited; // обрабатываемдалеепо-умолчанию
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
InF := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'settings.ini'); //
создаемпеременную
InF.Writeinteger('Time position','Pos:',Trackbar1.Position);
end;
procedure TForm1.TrayIcon1Click(Sender: TObject); // развернутьизтрея
begin
Form1.Show; // отображаемформу
TrayIcon1.Visible := False; // отключаемиконкувтрее
ShowWindow(Form1.Handle, sw_restore); // востанавливаемокно
Trayicon1.IconIndex:=0;
end;
procedure TForm1.TrayIcon1MouseMove(Sender: TObject; Shift: TShiftState; //
информацияпринаведениимышкинатрей
X, Y: Integer);
begin
TrayHint;
end;
end.
unit inse;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Registry;
type
Tin_se = class(TForm)
lst1: TListBox;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure lst1DblClick(Sender: TObject);
procedure correctly (Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)