Разработка программного комплекса сбора информации из вычислительной системы и сохранения ее в общий файл (или базу данных) на сервере

Сравнительный анализ языков программирования Delphi и С++. Определение информации о мониторе, сетевых адаптерах и запущенных процессах. Транспортировка информации на сервер. Сбор информации о времени работы пользователей. Описание основных алгоритмов.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 24.05.2017
Размер файла 159,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

begin

Inc(Result);

FWbemObject:=Unassigned;

end;

end;

procedure TForm1.GetKeyboard;

var q1,Boards,q3,tt:variant;

Service: ISWbemServices;

ObjectSet: ISWbemObjectSet;

SObject: ISWbemObject;

PropSet: ISWbemPropertySet;

SProp: ISWbemProperty;

PropEnum, Enum: IEnumVariant;

TempObj, PropVal: OleVariant;

Value: Cardinal;

LI: TListItem;

vt: TVarType;

SWbemLocator:TSWbemLocator;

s:String;

i:Integer;

kol,id:Integer;

begin

Memo1.Lines.Append('');

Memo1.Lines.Append('-----Клавиатура------');

try

CoInitialize(nil);

try

Memo1.Lines.Append(Format('Keyboards %d', [GetKeyboardCount]));

finally

CoUninitialize;

end;

except

on E:EOleException do

Memo1.Lines.Append(Format('EOleException %s %x', [E.Message,E.ErrorCode]));

on E:Exception do

Memo1.Lines.Append(E.Classname+':'+E.Message);

end;

SWbemLocator:= TSWbemLocator.Create(Nil);

try

SWbemLocator:= TSWbemLocator.Create(Self);

Service:= SWbemLocator.ConnectServer('.', 'root\CIMV2', '', '', '', '', 0, nil);

SObject:= Service.Get('Win32_Keyboard', wbemFlagUseAmendedQualifiers, nil);

ObjectSet:= SObject.Instances_(0, nil);

Enum:= (ObjectSet._NewEnum) as IEnumVariant;

Enum.Next(1, TempObj, Value);

SObject:= IUnknown(TempObj) as SWBemObject;

PropSet:= SObject.Properties_;

PropEnum:= (PropSet._NewEnum) as IEnumVariant;

while (PropEnum.Next(1, TempObj, Value) = S_OK) do

begin

SProp:= IUnknown(TempObj) as SWBemProperty;

//LI:= LVProp.Items.Add;

s:=SProp.Name+': ';

if not SProp.IsArray then begin

PropVal:= SProp.Get_Value;

s:=s+VarToStr(PropVal);

end

else begin

SProp.GetTypeInfoCount(kol);

for i:=1 to kol do

Begin

SProp.GetTypeInfo(i,id,tt);

s:=s+VartoStr(id)+': '+VarToStr(tt);

end;

end;

memo1.Lines.Append(s);

end;

finally

SWbemLocator.Free;

end;

End;

// -------------------------------------------------

// Сбор и вывод информации о материнской плате

// --------------------------------------------------

procedure TForm1.GetMotherBoard;

var q1,Boards,q3,tt:variant;

Service: ISWbemServices;

ObjectSet: ISWbemObjectSet;

SObject: ISWbemObject;

PropSet: ISWbemPropertySet;

SProp: ISWbemProperty;

PropEnum, Enum: IEnumVariant;

TempObj, PropVal: OleVariant;

Value: Cardinal;

LI: TListItem;

vt: TVarType;

SWbemLocator:TSWbemLocator;

s:String;

i:Integer;

kol,id:Integer;

begin

Memo1.Lines.Append('');

Memo1.Lines.Append('-----О материнской плате------');

//LVProp.Items.Clear;

SWbemLocator:= TSWbemLocator.Create(Nil);

try

SWbemLocator:= TSWbemLocator.Create(Self);

Service:= SWbemLocator.ConnectServer('.', 'root\CIMV2', '', '', '', '', 0, nil);

SObject:= Service.Get('Win32_BaseBoard', wbemFlagUseAmendedQualifiers, nil);

ObjectSet:= SObject.Instances_(0, nil);

Enum:= (ObjectSet._NewEnum) as IEnumVariant;

Enum.Next(1, TempObj, Value);

SObject:= IUnknown(TempObj) as SWBemObject;

PropSet:= SObject.Properties_;

PropEnum:= (PropSet._NewEnum) as IEnumVariant;

while (PropEnum.Next(1, TempObj, Value) = S_OK) do

begin

SProp:= IUnknown(TempObj) as SWBemProperty;

//LI:= LVProp.Items.Add;

s:=SProp.Name+': ';

if not SProp.IsArray then begin

PropVal:= SProp.Get_Value;

s:=s+VarToStr(PropVal);

end

else begin

SProp.GetTypeInfoCount(kol);

for i:=1 to kol do

Begin

SProp.GetTypeInfo(i,id,tt);

s:=s+VartoStr(id)+': '+VarToStr(tt);

end;

end;

memo1.Lines.Append(s);

end;

finally

SWbemLocator.Free;

end;

end;

procedure TForm1.GetMouse;

var q1,Boards,q3,tt:variant;

Service: ISWbemServices;

ObjectSet: ISWbemObjectSet;

SObject: ISWbemObject;

PropSet: ISWbemPropertySet;

SProp: ISWbemProperty;

PropEnum, Enum: IEnumVariant;

TempObj, PropVal: OleVariant;

Value: Cardinal;

LI: TListItem;

vt: TVarType;

SWbemLocator:TSWbemLocator;

s:String;

i:Integer;

kol,id:Integer;

begin

Memo1.Lines.Append('');

Memo1.Lines.Append('-----О мышке------');

//LVProp.Items.Clear;

SWbemLocator:= TSWbemLocator.Create(Nil);

try

SWbemLocator:= TSWbemLocator.Create(Self);

Service:= SWbemLocator.ConnectServer('.', 'root\CIMV2', '', '', '', '', 0, nil);

SObject:= Service.Get('Win32_PointingDevice', wbemFlagUseAmendedQualifiers, nil);

ObjectSet:= SObject.Instances_(0, nil);

Enum:= (ObjectSet._NewEnum) as IEnumVariant;

Enum.Next(1, TempObj, Value);

SObject:= IUnknown(TempObj) as SWBemObject;

PropSet:= SObject.Properties_;

PropEnum:= (PropSet._NewEnum) as IEnumVariant;

while (PropEnum.Next(1, TempObj, Value) = S_OK) do

begin

SProp:= IUnknown(TempObj) as SWBemProperty;

//LI:= LVProp.Items.Add;

s:=SProp.Name+': ';

if not SProp.IsArray then begin

PropVal:= SProp.Get_Value;

s:=s+VarToStr(PropVal);

end

else begin

SProp.GetTypeInfoCount(kol);

for i:=1 to kol do

Begin

SProp.GetTypeInfo(i,id,tt);

s:=s+VartoStr(id)+': '+VarToStr(tt);

end;

end;

memo1.Lines.Append(s);

end;

finally

SWbemLocator.Free;

end;

end;

procedure TForm1.GetMonitor;

var q1,Boards,q3,tt:variant;

Service: ISWbemServices;

ObjectSet: ISWbemObjectSet;

SObject: ISWbemObject;

PropSet: ISWbemPropertySet;

SProp: ISWbemProperty;

PropEnum, Enum: IEnumVariant;

TempObj, PropVal: OleVariant;

Value: Cardinal;

LI: TListItem;

vt: TVarType;

SWbemLocator:TSWbemLocator;

s:String;

i:Integer;

kol,id:Integer;

begin

Memo1.Lines.Append('');

Memo1.Lines.Append('-----О мониторе------');

//LVProp.Items.Clear;

SWbemLocator:= TSWbemLocator.Create(Nil);

try

SWbemLocator:= TSWbemLocator.Create(Self);

Service:= SWbemLocator.ConnectServer('.', 'root\CIMV2', '', '', '', '', 0, nil);

SObject:= Service.Get('Win32_DesktopMonitor', wbemFlagUseAmendedQualifiers, nil);

ObjectSet:= SObject.Instances_(0, nil);

Enum:= (ObjectSet._NewEnum) as IEnumVariant;

Enum.Next(1, TempObj, Value);

SObject:= IUnknown(TempObj) as SWBemObject;

PropSet:= SObject.Properties_;

PropEnum:= (PropSet._NewEnum) as IEnumVariant;

while (PropEnum.Next(1, TempObj, Value) = S_OK) do

begin

SProp:= IUnknown(TempObj) as SWBemProperty;

//LI:= LVProp.Items.Add;

s:=SProp.Name+': ';

if not SProp.IsArray then begin

PropVal:= SProp.Get_Value;

s:=s+VarToStr(PropVal);

end

else begin

SProp.GetTypeInfoCount(kol);

for i:=1 to kol do

Begin

SProp.GetTypeInfo(i,id,tt);

s:=s+VartoStr(id)+': '+VarToStr(tt);

end;

end;

memo1.Lines.Append(s);

end;

finally

SWbemLocator.Free;

end;

end;

procedure TForm1.GetNet;

var q1,Boards,q3,tt:variant;

Service: ISWbemServices;

ObjectSet: ISWbemObjectSet;

SObject: ISWbemObject;

PropSet: ISWbemPropertySet;

SProp: ISWbemProperty;

PropEnum, Enum: IEnumVariant;

TempObj, PropVal: OleVariant;

Value: Cardinal;

LI: TListItem;

vt: TVarType;

SWbemLocator:TSWbemLocator;

s:String;

i:Integer;

kol,id:Integer;

begin

Memo1.Lines.Append('');

Memo1.Lines.Append('-----О сетевых адаптерах------');

//LVProp.Items.Clear;

SWbemLocator:= TSWbemLocator.Create(Nil);

try

SWbemLocator:= TSWbemLocator.Create(Self);

Service:= SWbemLocator.ConnectServer('.', 'root\CIMV2', '', '', '', '', 0, nil);

SObject:= Service.Get('Win32_NetworkAdapter', wbemFlagUseAmendedQualifiers, nil);

ObjectSet:= SObject.Instances_(0, nil);

Enum:= (ObjectSet._NewEnum) as IEnumVariant;

Enum.Next(1, TempObj, Value);

SObject:= IUnknown(TempObj) as SWBemObject;

PropSet:= SObject.Properties_;

PropEnum:= (PropSet._NewEnum) as IEnumVariant;

while (PropEnum.Next(1, TempObj, Value) = S_OK) do

begin

SProp:= IUnknown(TempObj) as SWBemProperty;

//LI:= LVProp.Items.Add;

s:=SProp.Name+': ';

if not SProp.IsArray then begin

PropVal:= SProp.Get_Value;

s:=s+VarToStr(PropVal);

end

else begin

SProp.GetTypeInfoCount(kol);

for i:=1 to kol do

Begin

SProp.GetTypeInfo(i,id,tt);

s:=s+VartoStr(id)+': '+VarToStr(tt);

end;

end;

memo1.Lines.Append(s);

end;

finally

SWbemLocator.Free;

end;

end;

// ------------------------------------------------

// -------------------- О запущенных процессах

// ------------------------------------------------

procedure CreateWin9xProcessList(List: TstringList);

var

hSnapShot: THandle;

ProcInfo: TProcessEntry32;

begin

if List = nil then Exit;

hSnapShot:= CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);

if (hSnapShot <> THandle(-1)) then

begin

ProcInfo.dwSize:= SizeOf(ProcInfo);

if (Process32First(hSnapshot, ProcInfo)) then

begin

List.Add(ProcInfo.szExeFile);

while (Process32Next(hSnapShot, ProcInfo)) do

List.Add(ProcInfo.szExeFile);

end;

CloseHandle(hSnapShot);

end;

end;

procedure CreateWinNTProcessList(List: TstringList);

var

PIDArray: array [0..1023] of DWORD;

cb: DWORD;

I: Integer;

ProcCount: Integer;

hMod: HMODULE;

hProcess: THandle;

ModuleName: array [0..300] of Char;

begin

if List = nil then Exit;

EnumProcesses(@PIDArray, SizeOf(PIDArray), cb);

ProcCount:= cb div SizeOf(DWORD);

for I:= 0 to ProcCount - 1 do

begin

hProcess:= OpenProcess(PROCESS_QUERY_INFORMATION or

PROCESS_VM_READ,

False,

PIDArray[I]);

if (hProcess <> 0) then

begin

EnumProcessModules(hProcess, @hMod, SizeOf(hMod), cb);

GetModuleFilenameEx(hProcess, hMod, ModuleName, SizeOf(ModuleName));

List.Add(ModuleName);

CloseHandle(hProcess);

end;

end;

end;

procedure GetProcessList(var List: TstringList);

var

ovi: TOSVersionInfo;

begin

if List = nil then Exit;

ovi.dwOSVersionInfoSize:= SizeOf(TOSVersionInfo);

GetVersionEx(ovi);

case ovi.dwPlatformId of

VER_PLATFORM_WIN32_WINDOWS: CreateWin9xProcessList(List);

VER_PLATFORM_WIN32_NT: CreateWinNTProcessList(List);

end

end;

procedure TForm1.GetProc;

var

i: Integer;

MyProcList: TstringList;

begin

Memo1.Lines.Append('');

Memo1.Lines.Append('-----О запущенных проссах------');

MyProcList:= TStringList.Create;

try

GetProcessList(MyProcList);

if MyProcList = nil then Exit;

for i:= 1 to MyProcList.Count - 1 do

Memo1.Lines.Append(MyProcList.Strings[i]);

finally

MyProcList.Free;

end;

end;

// ----------------- Время работы системы

// ---------------------------------------------

type

SYSTEM_TIME_OF_DAY_INFORMATION = record

BootTime: LARGE_INTEGER;

CurrentTime: LARGE_INTEGER;

TimeZoneBias: LARGE_INTEGER;

CurrentTimeZoneId: ULONG;

end;

PSYSTEM_TIME_OF_DAY_INFORMATION = ^SYSTEM_TIME_OF_DAY_INFORMATION;

NTSTATUS = DWORD;

const

SystemTimeOfDayInformation =3;

function NtQuerySystemInformation(SystemInformationClass:byte;

SystemInformation: Pointer;

SystemInformationLength: ULONG;

ReturnLength: PULONG): NTSTATUS; stdcall; external 'NTDLL.DLL';

function SysDateToStr(ST: TSystemTime): string;

const

sDateFmt = 'dddd, d MMMM, yyyy';

begin

SetLength(Result, 255);

GetDateFormat(LOCALE_USER_DEFAULT, 0, @ST, sDateFmt, @result[1], 255);

SetLength(Result, LStrLen(@result[1]));

end;

function SysTimeToStr(ST: TSystemTime):string;

const

sTimeFmt = 'HH:mm:ss' ;

begin

SetLength(result,15);

GetTimeFormat(LOCALE_USER_DEFAULT,0,@st,sTimeFmt,@result[1],15);

SetLength(result, StrLen(@result[1]));

end;

function GetFileTimeToSystemTime(ft:TFileTime):string;

var

st,lt:TSystemTime;

tz:TTimezoneInformation;

begin

Result:='';

if not FileTimeToSystemTime(ft, st) then exit;

GetTimeZoneInformation(tz);

SystemTimeToTzSpecificLocalTime(@tz,st,lt);

Result:=SysDateToStr(lt)+' в ' + SysTimeToStr(lt);

end;

// дата/время последнего выключения (или перезагрузки) системы

function GetLastSystemShutdown:string;

var

ft:TFileTime;

reg:TRegistry;

begin

Result:='';

reg:=TRegistry.Create;

try

reg.RootKey:=HKEY_LOCAL_MACHINE;

if (not reg.OpenKeyReadOnly('System\CurrentControlSet\Control\Windows')) then exit;

if (reg.ReadBinaryData('ShutdownTime',ft,sizeof(ft))=0) then exit

finally

reg.Free

end;

Result:= GetFileTimeToSystemTime(ft)

end;

// дата/время старта системы

function NtGetBootDateTime:string;

var

sti: SYSTEM_TIME_OF_DAY_INFORMATION;

status: NTSTATUS;

ftSystemBoot: FILETIME;

ST:TSystemTime;

begin

Result:='';

status:=NtQuerySystemInformation(SystemTimeOfDayInformation, @sti,

sizeof(SYSTEM_TIME_OF_DAY_INFORMATION),nil);

if (status<>NO_ERROR) then exit;

ftSystemBoot:= PFILETIME(@(sti.BootTime))^;

if FileTimeToLocalFileTime(ftSystemBoot,ftSystemBoot) then

if FileTimeToSystemTime(ftSystemBoot,ST) then

Result:=SysDateToStr(ST)+' в '+SysTimeToStr(ST)

end;

procedure TForm1.GetTimeSys;

begin

Memo1.Lines.Append('');

Memo1.Lines.Append('-----Время работы системы------');

Memo1.Lines.Append('Запуск системы: '+NtGetBootDateTime);

Memo1.Lines.Append('Закрытие системы: '+GetLastSystemShutdown);

end;

// ------ о пользователях ---------------------

// --------------------------------

// Перевод из стандартной строки Delphi в Unicode-строку для WinAPI

function Str2Wide( lpStr: String ):PWideChar;

var

dwStrlen: Cardinal;

begin

dwStrLen:= lstrlen(PChar(lpStr));

GetMem(Result,(dwStrLen+1)*2);

StringToWideChar(lpStr,Result,dwStrLen+1);

end;

function SpecDWORDToDateTime(AData: DWORD): TDateTime;

function DWORDPartToInt(ADWORD, AMask: DWORD; AShift: Integer): Integer;

begin

Result:= (ADWORD Or AMask) Shr AShift;

end

const

cH = $F800; // 0000000000000000.1111100000000000

cMm = $7E0; // 0000000000000000.0000011111100000

cS = $FE000000; // 1111111000000000.0000000000000000

cM = $1E00000; // 0000000111100000.0000000000000000

cD = $1F0000; // 0000000000011111.0000000000000000

var

D, M, H, Mm, S: Integer;

begin

D:= DWORDPartToInt(AData, cD, 16);

M:= DWORDPartToInt(AData, cM, 21);

H:= DWORDPartToInt(AData, cH, 11);

MM:= DWORDPartToInt(AData, cMm, 5);

S:= DWORDPartToInt(AData, cS, 25);

Result:= EncodeDateTime(2015,M,D,H,Mm,S,0);

// 2009 - Year

// 0 - mSeconds

end;

const

// Sets UnixStartDate to TDateTime of 01/01/1970

UnixStartDate: TDateTime = 25569.0;

function DateTimeToUnix(ConvDate: TDateTime): Longint;

begin

//example: DateTimeToUnix(now);

Result:= Round((ConvDate - UnixStartDate) * 86400);

end;

function UnixToDateTime(USec: Longint): TDateTime;

begin

//Example: UnixToDateTime(1003187418);

Result:= (Usec / 86400) + UnixStartDate;

end;

procedure TForm1.GetLocalUserList;

const

NERR_SUCCESS = 0;

FILTER_TEMP_DUPLICATE_ACCOUNT = $0001;

FILTER_NORMAL_ACCOUNT = $0002;

FILTER_PROXY_ACCOUNT = $0004;

FILTER_INTERDOMAIN_TRUST_ACCOUNT = $0008;

FILTER_WORKSTATION_TRUST_ACCOUNT = $0010;

FILTER_SERVER_TRUST_ACCOUNT = $0020;

type

TUSER_INFO_10 = record

usri10_name,

usri10_comment,

usri10_usr_comment,

usri10_full_name: PWideChar;

end;

PUSER_INFO_10 = ^TUSER_INFO_10;

_USER_INFO_2 = record

usri2_name,

usri2_password: LPWSTR;

usri2_password_age, usri2_priv: DWORD;

usri2_home_dir,

usri2_comment : LPWSTR;

usri2_flags:DWORD;

usri2_script_path: LPWSTR;

usri2_auth_flags:DWORD;

usri2_full_name,

usri2_usr_comment,

usri2_parms,

usri2_workstations: LPWSTR;

usri2_last_logon,

usri2_last_logoff,

usri2_acct_expires,

usri2_max_storage,

usri2_units_per_week: DWORD;

usri2_logon_hours: PBYTE;

usri2_bad_pw_count,

usri2_num_logons: DWORD;

usri2_logon_server: LPWSTR;

usri2_country_code,

usri2_code_page: DWORD;

End;

var

tm : TDateTime;

time : _FILETIME;

fTime : SYSTEMTIME;

USER_INFO_2: _USER_INFO_2;

PUSER_INFO_2: ^ _USER_INFO_2;

LPUSER_INFO_2: ^_USER_INFO_2;

dt1,dt2:TDateTime;

s:String;

dwERead, dwETotal, dwRes, res: DWORD;

inf: PUSER_INFO_10;

info: Pointer;

p: PChar;

i: Integer;

UserInfo: ^_USER_INFO_2;

lpwUser : PWideChar;

lpwSrv : PWideChar;

begin

UserInfo:=Addr(USER_INFO_2);

memo1.lines.append('');

memo1.lines.append('-----Список пользователей--------------');

info:= nil;

dwRes:= 0;

res:= NetUserEnum(nil,

10,

FILTER_NORMAL_ACCOUNT,

@info,

65536,

@dwERead,

@dwETotal,

@dwRes);

if (res <> NERR_SUCCESS) or (info = nil) then

Exit;

p:= PChar(info);

for i:= 0 to dwERead - 1 do

begin

inf:= PUSER_INFO_10(p + i * SizeOf(TUSER_INFO_10));

Memo1.Lines.Append(WideCharToString(inf^.usri10_name));

Memo1.Lines.Append(WideCharToString(inf^.usri10_comment));

//Memo1.Lines.Append(WideCharToString(inf^.usri10_usr_comment));

//Memo1.Lines.Append(WideCharToString(inf^.usri10_full_name));

lpwSrv := Str2Wide('');

lpwUser:= inf^.usri10_name;

NetUserGetInfo(lpwSrv,lpwUser,2,Pointer(UserInfo));

//usri2_last_logon и usri2_last_logoff - время последнего входа и выхода пользователя (R)

(*

usri2_last_logon

Type: DWORD

The date and time when the last logon occurred. This value is stored as the number

of seconds that have elapsed since 00:00:00, January 1, 1970, GMT. This member

is ignored by the NetUserAdd and NetUserSetInfo functions.

This member is maintained separately on each backup domain controller (BDC)

in the domain. To obtain an accurate value, you must query each BDC in the

domain. The last logon occurred at the time indicated by the largest retrieved value.

usri2_last_logoff

Type: DWORD

This member is currently not used.

Indicates when the last logoff occurred. This value is stored as the number of

seconds that have elapsed since 00:00:00, January 1, 1970, GMT. A value of zero

indicates that the last logoff time is unknown.

This member is maintained separately on each backup domain controller (BDC) in

the domain. To obtain an accurate value, you must query each BDC in the domain.

The last logoff occurred at the time indicated by the largest retrieved value.

*)

dt1:= UnixToDateTime(UserInfo^.usri2_last_logon);

dt2:= UnixToDateTime(UserInfo^.usri2_last_logoff);

s:='';

if UserInfo^.usri2_last_logon<>0

then s:=s+'Вход: '+DateTimeToStr(dt1)+'. '

else s:=s+'Вход не зафиксирован. ';

if UserInfo^.usri2_last_logoff<>0

Then s:=s+'Выход: '+DateTimeToStr(dt2)+'. '

else s:=s+'Выход не зафиксирован. ';

memo1.Lines.Add(s);

Memo1.Lines.Add('');

end;

NetApiBufferFree(info);

end;

procedure TForm1.BInfoClick(Sender: TObject);

begin

Memo1.Lines.Clear;

GetProcessorInfo;

GetBIOSInfo;

GetLogicalHDD;

GetKeyboard;

GetMotherBoard;

GetMouse;

GetMonitor;

GetNet;

GetProc;

GetTimeSys;

GetLocalUserList;

end;

procedure TForm1.BSendClick(Sender: TObject);

Var

FName:String; // Имя файла для записи на ftp-сервер

FPath:String; // Имя временного файла на компьютере с полным путём

begin

// Формирование имени файла

FName:=DateTimeToStr(Now);

FName:= StringReplace(FName, ' ', '_',[rfReplaceAll, rfIgnoreCase]);

FName:= StringReplace(FName, '.', '_',[rfReplaceAll, rfIgnoreCase]);

FName:= StringReplace(FName, ':', '_',[rfReplaceAll, rfIgnoreCase])+'.txt';

FPath:=ExtractFilePath(Application.ExeName)+FName;

// Создаем файл на диске локального компьютере

Memo1.Lines.SaveToFile(FPath);

// Записываем на ftp-сервер

stat.SimpleText:='Подключение к серверу: ';

idFTP1.Host:=Trim(EditIP.Text); // ip-адрес сервера

idFTP1.Port:=StrToInt(EditPort.Text); // порт ftp сервера

idFTP1.Username:=EditLog.Text; // логин

idFTP1.Password:=EditPas.Text; //пароль

idFTP1.Connect;

stat.SimpleText:='Отправка файла: '+FName;

idFTP1.ChangeDir(Trim(EditDir.Text));

idFTP1.Put(FPath,FName);

idFTP1.Disconnect;

stat.SimpleText:='Отключение от сервера: '+Trim(EditIP.Text);

stat.SimpleText:='Готово!'

end;

end.

Приложение Б

Листинг собранной информации о компьютере

-----ЦП------

Процессор 0:

производитель: GenuineIntel

семейство: x86 Family 6 Model 15 Stepping 11

Процессор 1:

производитель: GenuineIntel

семейство: x86 Family 6 Model 15 Stepping 11

AddressWidth: 32

Architecture: 0

Availability: 3

Caption: x86 Family 6 Model 15 Stepping 11

ConfigManagerErrorCode:

ConfigManagerUserConfig:

CpuStatus: 1

CreationClassName: Win32_Processor

CurrentClockSpeed: 2194

CurrentVoltage: 13

DataWidth: 32

Description: x86 Family 6 Model 15 Stepping 11

DeviceID: CPU0

ErrorCleared:

ErrorDescription:

ExtClock: 200

Family: 2

InstallDate:

L2CacheSize: 4096

L2CacheSpeed:

LastErrorCode:

Level: 6

LoadPercentage: 7

Manufacturer: GenuineIntel

MaxClockSpeed: 2194

Name: Intel(R) Core(TM)2 Duo CPU T7500 @ 2.20GHz

NumberOfCores: 2

NumberOfLogicalProcessors: 2

OtherFamilyDescription:

PNPDeviceID:

PowerManagementCapabilities: 1243048:

PowerManagementSupported: False

ProcessorId: 00000000000006FB

ProcessorType: 3

Revision: 3851

Role: CPU

SocketDesignation: uFC-PGA Socket

Status: OK

StatusInfo: 3

Stepping: 11

SystemCreationClassName: Win32_ComputerSystem

SystemName: MICROSOF-5599EF

UniqueId:

UpgradeMethod: 1

Version: Модель 15, Выпуск 11

VoltageCaps:

-----BIOS------

Системная дата BIOS: 03/06/08

Версия BIOS: TOSHIB - 20070816

v2.10

BiosCharacteristics: 0:

BIOSVersion: 0:

BuildNumber:

Caption: v2.10

CodeSet:

CurrentLanguage:

Description: v2.10

IdentificationCode:

InstallableLanguages:

InstallDate:

LanguageEdition:

ListOfLanguages: 0:

Manufacturer: TOSHIBA

Name: v2.10

OtherTargetOS:

PrimaryBIOS: True

ReleaseDate: 20080306000000.000000+000

SerialNumber: X7022819H

SMBIOSBIOSVersion: Version 2.10

SMBIOSMajorVersion: 2

SMBIOSMinorVersion: 4

SMBIOSPresent: True

SoftwareElementID: v2.10

SoftwareElementState: 3

Status: OK

TargetOperatingSystem: 0

Version: TOSHIB - 20070816

-----HDD------

Доступно: C:\\

Тип устройства: жесткий диск

Метка тома:

Серийный номер: 875222072

Файловая система: NTFS

Доступно: D:\\

Тип устройства: жесткий диск

Метка тома: Рабочий

Серийный номер: 752201973

Файловая система: NTFS

Доступно: E:\\

Тип устройства: жесткий диск

Метка тома: Медиа

Серийный номер: 1546234612

Файловая система: NTFS

Доступно: F:\\

Тип устройства: CD-ROM

не известно

Availability:

BytesPerSector: 512

Capabilities: 0:

CapabilityDescriptions: 0:

Caption: TOSHIBA MK8037GSX

CompressionMethod:

ConfigManagerErrorCode: 0

ConfigManagerUserConfig: False

CreationClassName: Win32_DiskDrive

DefaultBlockSize:

Description: Дисковый накопитель

DeviceID: \\.\PHYSICALDRIVE0

ErrorCleared:

ErrorDescription:

ErrorMethodology:

Index: 0

InstallDate:

InterfaceType: IDE

LastErrorCode:

Manufacturer: (Стандартные дисковые накопители)

MaxBlockSize:

MaxMediaSize:

MediaLoaded: True

MediaType: Fixedhard disk media

MinBlockSize:

Model: TOSHIBA MK8037GSX

Name: \\.\PHYSICALDRIVE0

NeedsCleaning:

NumberOfMediaSupported:

Partitions: 3

PNPDeviceID: IDE\DISKTOSHIBA_MK8037GSX_______________________DL230M__\5&2F5A5D51&0&0.0.0

PowerManagementCapabilities: 0:

PowerManagementSupported:

SCSIBus: 0

SCSILogicalUnit: 0

SCSIPort: 0

SCSITargetId: 0

SectorsPerTrack: 63

Signature: 1757294337

Size: 80023749120

Status: OK

StatusInfo:

SystemCreationClassName: Win32_ComputerSystem

SystemName: MICROSOF-5599EF

TotalCylinders: 9729

TotalHeads: 255

TotalSectors: 156296385

TotalTracks: 2480895

TracksPerCylinder: 255

-----Клавиатура------

Keyboards 1

Availability:

Caption: Расширенная клавиатура (101 или 102 клавиши)

ConfigManagerErrorCode: 0

ConfigManagerUserConfig: False

CreationClassName: Win32_Keyboard

Description: Стандартная (101/102 клавиши) или клавиатура PS/2 Microsoft Natural

DeviceID: ACPI\PNP0303\4&2FFE84EA&0

ErrorCleared:

ErrorDescription:

InstallDate:

IsLocked:

LastErrorCode:

Layout: 00000419

Name: Расширенная клавиатура (101 или 102 клавиши)

NumberOfFunctionKeys: 12

Password:

PNPDeviceID: ACPI\PNP0303\4&2FFE84EA&0

PowerManagementCapabilities: 0:

PowerManagementSupported: False

Status: OK

StatusInfo:

SystemCreationClassName: Win32_ComputerSystem

SystemName: MICROSOF-5599EF

-----О материнской плате------

Caption: Основная плата

ConfigOptions: 1243048:

CreationClassName: Win32_BaseBoard

Depth:

Description: Основная плата

Height:

HostingBoard: True

HotSwappable:

InstallDate:

Manufacturer: TOSHIBA

Model:

Name: Основная плата

OtherIdentifyingInfo:

PartNumber:

PoweredOn: True

Product: Portable PC

Removable:

Replaceable:

RequirementsDescription:

RequiresDaughterBoard:

SerialNumber: $$C07X80GP

SKU:

SlotLayout:

SpecialRequirements:

Status:

Tag: Base Board

Version: Version A0

Weight:

Width:

-----О мышке------

Availability:

Caption: USB HID-совместимое устройство

ConfigManagerErrorCode: 0

ConfigManagerUserConfig: False

CreationClassName: Win32_PointingDevice

Description: USB HID-совместимое устройство

DeviceID: USB\VID_0458&PID_003A\5&30A64690&0&1

DeviceInterface: 162

DoubleSpeedThreshold: 6

ErrorCleared:

ErrorDescription:

Handedness: 2

HardwareType: USB HID-совместимое устройство

InfFileName: input.inf

InfSection: HID_Inst

InstallDate:

IsLocked:

LastErrorCode:

Manufacturer: (стандартные системные устройства)

Name: USB HID-совместимое устройство

NumberOfButtons: 3

PNPDeviceID: USB\VID_0458&PID_003A\5&30A64690&0&1

PointingType: 2

PowerManagementCapabilities: 1243048:

PowerManagementSupported: False

QuadSpeedThreshold: 10

Resolution:

SampleRate:

Status: OK

StatusInfo:

Synch:

SystemCreationClassName: Win32_ComputerSystem

SystemName: MICROSOF-5599EF

-----О мониторе------

Availability: 3

Bandwidth:

Caption: Модуль подключения монитора

ConfigManagerErrorCode: 0

ConfigManagerUserConfig: False

CreationClassName: Win32_DesktopMonitor

Description: Модуль подключения монитора

DeviceID: DesktopMonitor1

DisplayType:

ErrorCleared:

ErrorDescription:

InstallDate:

IsLocked:

LastErrorCode:

MonitorManufacturer: (Стандартные мониторы)

MonitorType: Модуль подключения монитора

Name: Модуль подключения монитора

PixelsPerXLogicalInch: 96

PixelsPerYLogicalInch: 96

PNPDeviceID: DISPLAY\TOS508A\4&1657F16D&0&00000410&00&02

PowerManagementCapabilities: 1243048:

PowerManagementSupported:

ScreenHeight: 800

ScreenWidth: 1280

Status: OK

StatusInfo:

SystemCreationClassName: Win32_ComputerSystem

SystemName: MICROSOF-5599EF

-----О сетевых адаптерах------

AdapterType: Ethernet 802.3

AdapterTypeId: 0

AutoSense:

Availability: 3

Caption: [00000001] Intel(R) 82566MC Gigabit Network Connection

ConfigManagerErrorCode: 0

ConfigManagerUserConfig: False

CreationClassName: Win32_NetworkAdapter

Description: Intel(R) 82566MC Gigabit Network Connection

DeviceID: 1

ErrorCleared:

ErrorDescription:

Index: 1

InstallDate:

Installed: True

LastErrorCode:

MACAddress: 00:1C:7E:D5:D3:1E

Manufacturer: Intel

MaxNumberControlled: 0

MaxSpeed:

Name: Intel(R) 82566MC Gigabit Network Connection

NetConnectionID: Подключение по локальной сети

NetConnectionStatus: 7

NetworkAddresses: 1243048:

PermanentAddress:

PNPDeviceID: PCI\VEN_8086&DEV_104D&SUBSYS_00011179&REV_03\3&B1BFB68&0&C8

PowerManagementCapabilities: 1243048:

PowerManagementSupported: False

ProductName: Intel(R) 82566MC Gigabit Network Connection

ServiceName: e1express

Speed:

Status:

StatusInfo:

SystemCreationClassName: Win32_ComputerSystem

SystemName: MICROSOF-5599EF

TimeOfLastReset: 20151114063115.765625+120

-----О запущенных проссах------

\SystemRoot\System32\smss.exe

\??\C:\WINDOWS\system32\winlogon.exe

C:\WINDOWS\system32\services.exe

C:\WINDOWS\system32\lsass.exe

C:\WINDOWS\system32\svchost.exe

C:\WINDOWS\System32\svchost.exe

C:\WINDOWS\system32\spoolsv.exe

C:\WINDOWS\Explorer.EXE

C:\WINDOWS\system32\igfxtray.exe

C:\WINDOWS\system32\igfxsrvc.exe

C:\WINDOWS\system32\hkcmd.exe

C:\WINDOWS\system32\igfxpers.exe

C:\WINDOWS\RTHDCPL.EXE

C:\WINDOWS\system32\00THotkey.exe

C:\WINDOWS\system32\thpsrv.exe

C:\WINDOWS\system32\agrsmsvc.exe

C:\Program Files\TOSHIBA\TouchED\TouchED.exe

C:\WINDOWS\system32\rundll32.exe

C:\Program Files\Common Files\Microsoft Shared\VS7DEBUG\MDM.EXE

C:\Documents and Settings\All Users\Application Data\MobileBrServ\mbbservice.exe

C:\WINDOWS\system32\ctfmon.exe

C:\WINDOWS\system32\svchost.exe

C:\WINDOWS\system32\ThpSrv.exe

C:\Program Files\TOSHIBA\Bluetooth Monitor\BtMon2.exe

C:\Program Files\RSPrint\PrintMon.exe

C:\WINDOWS\System32\svchost.exe

C:\Program Files\Microsoft Office\Office12\WINWORD.EXE

C:\Program Files\Borland\Delphi7\Bin\delphi32.exe

C:\Screenshoter.exe

-----Время работы системы------

Запуск системы: суббота, 14 ноября, 2015 в 06:31:15

Закрытие системы: воскресенье, 8 ноября, 2015 в 12:04:35

-----Список пользователей--------------

Admin

Встроенная учетная запись администратора компьютера/домена

Вход: 13.11.2015 11:20:33. Выход не зафиксирован.

ASPNET

Account used for running the ASP.NET worker process (aspnet_wp.exe)

Вход не зафиксирован. Выход не зафиксирован.

HelpAssistant

Учетная запись для предоставления удаленной помощи

Вход не зафиксирован. Выход не зафиксирован.

SUPPORT_388945a0

Это учетная запись поставщика для службы справки и поддержки

Вход не зафиксирован. Выход не зафиксирован.

Гость

Встроенная учетная запись для доступа гостей к компьютеру/домену

Вход не зафиксирован. Выход не зафиксирован.

Размещено на Allbest.ru

...

Подобные документы

  • Технология сбора информации традиционными методами. Правила сбора оффлайновой информации. Технические средства сбора информации. Операции для быстрого восстановления данных в системах хранения. Технологический процесс и процедуры обработки информации.

    курсовая работа [304,5 K], добавлен 02.04.2013

  • Способы передачи данных и методы фазирования. Передача алфавитно-цифровой информации. Разработка кодирующего и декодирующего устройства. Расчет среднего времени запаздывания информации. Разработка структурных схем и алгоритмов функционирования СПД.

    курсовая работа [2,0 M], добавлен 21.12.2012

  • Изучение организации диалоговой программы и закрепления основных элементов программирования на языке Паскаль и Си (Delphi, C++ Builder). Описание представления информации в программах на языках высокого уровня. Сравнительная характеристика Delphi и C++.

    курсовая работа [3,1 M], добавлен 27.02.2015

  • Разработка базы данных "Поставка и реализация продуктов питания". Применение базы данных. Цель инфологического проектирования. Выборка информации при помощи запросов. Подпрограммы, работающие на сервере и управляющие процессами обработки информации.

    курсовая работа [326,0 K], добавлен 28.06.2011

  • Borland Delphi 7 как универсальный инструмент разработки, применяемый во многих областях программирования, функции: добавление информации об абитуриентах в базу данных, формирование отчетов. Рассмотрение и характеристика основных компонентов Delphi.

    контрольная работа [3,6 M], добавлен 18.10.2012

  • Анализ возможностей утечки информации, неавторизованного и несанкционированного доступа к ресурсам ЛВС сельскохозяйственного комплекса. Ознакомление с антивирусными программы и брандмауэрами. Разработка программного комплекса для защиты информации.

    дипломная работа [3,6 M], добавлен 17.04.2010

  • Выбор типовой архитектуры. Схема работы Shell-скрипта. Вывод информации на сайт. Обеспечение его безопасности. Внедрение проекта на сервер. Построение заключительного запроса. Оценка времени работы приложения. Настройка авторизации по открытому ключу.

    курсовая работа [950,6 K], добавлен 22.03.2018

  • Структура программного комплекса. Ввод информации из заданного файла. Создание набора данных. Добавление элементов в конец набора данных. Просмотр всех элементов набора данных. Копирование информации из НД в заданный файл. Сортировка массива по номерам.

    курсовая работа [630,5 K], добавлен 01.06.2014

  • Обзор контроллеров и модулей ввода-вывода отечественных и зарубежных фирм. Разработка системы АСТРК-СХК нового поколения. Возможные области применения OPC-серверов в АСУ предприятия. Оценка эффективности разработки системы удаленного сбора информации.

    дипломная работа [4,5 M], добавлен 07.09.2013

  • Разработка программы, создающей и управляющей базой данных, ее реализация на языке Turbo Pascal. Организация алгоритма программы. Вывод информации и возможность добавления информации в базу данных. Поиск информации в базе данных по заданному значению.

    курсовая работа [26,7 K], добавлен 19.06.2010

  • Внедрение программного продукта в организации. Описание входной и выходной информации. Конфигурирование приложения "Сервис веб-помощи". Обзор пользовательского интерфейса. Руководство пользователя для персонала больницы и для администратора приложения.

    дипломная работа [2,9 M], добавлен 24.06.2013

  • Особенности управляющих микроконтроллеров. Разработка контроллера для реализации комплекса сбора информации, рассчитанного на фиксирование данных в оперативно-запоминающем устройстве и одновременную передачу её по GSM-каналу в виде SMS-сообщения.

    курсовая работа [1019,3 K], добавлен 26.12.2012

  • Анализ исходных данных. Определение структуры модуля для работы файлом. Разработка объектно-ориентированного приложения, использующего массив объектов, в среде Delphi. Модульная структура программного комплекса. Процедура сортировки методом вставки.

    курсовая работа [2,2 M], добавлен 20.09.2014

  • Виды информации, с которыми работают современные компьютеры. Понятие "информация": в физике, в биологии, в кибернетике. Представление информации. Кодирование и каналы передачи информации. Локальные компьютерные сети. Хранение информации в файлах.

    контрольная работа [26,4 K], добавлен 13.01.2008

  • Сущность языка программирования, идентификатора, структуры данных. Хранение информации, алгоритмы их обработки и особенности запоминающих устройств. Классификация структур данных и алгоритмов. Операции над структурами данных и технология программирования.

    контрольная работа [19,6 K], добавлен 11.12.2011

  • Анализ единичных и комплексных показателей качества аппаратного комплекса системы защиты информации. Расчет стоимости для каждой фазы жизненного цикла системы защиты информации программного комплекса, а также расчет общей стоимости владения комплексом.

    курсовая работа [65,9 K], добавлен 20.02.2012

  • Определение перечня защищаемой информации и прав пользователей с учетом их должностных полномочий. Выявление путей несанкционированной утечки данных. Установка средств защиты информации, настройка антивирусных программ. Работа с журналами аудита системы.

    курсовая работа [753,4 K], добавлен 29.11.2011

  • Выбор технологии, языка и среды программирования. Анализ процесса обработки информации и оценка структур данных для ее хранения. Разработка основных алгоритмов решения и структурной схемы программного продукта. Проектирование интерфейса пользователя.

    курсовая работа [449,8 K], добавлен 14.01.2011

  • Средства поиска информации в сети Интернет. Основные требования и методика поиска информации. Структура и характеристика поисковых сервисов. Глобальные поисковые машины WWW (World Wide Web). Планирование поиска и сбора информации в сети Интернет.

    реферат [32,2 K], добавлен 02.11.2010

  • Разработка информационной системы административного управления. Выбор языка и среды программирования. Структура взаимодействия информации. Требования к программно-аппаратному окружению. Создание программы в Delphi и связывание ее с базой данных.

    курсовая работа [1010,9 K], добавлен 08.10.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.