Разработка программного комплекса сбора информации из вычислительной системы и сохранения ее в общий файл (или базу данных) на сервере
Сравнительный анализ языков программирования 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.2011Borland 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