Автор: NightW0lf
Дата сообщения: 20.08.2008 14:08
Zloy_Gelud
Можешь помочь сделать условие чтобы проверялся параметр кол-во RAM т.е. например если 512 mb т.е. будет сообщение соответствующие. Вот твой код [more=Check_Sys_Requirements]
Код: Global Functions
function OSInfo()
-- обозначаем переменные
local sComputerName = "";
local sCountry = "";
local sLanguage = "";
local sRegOwner = "";
local sIP = "";
local sOS = "";
local sProcessorName = "";
local sMHz = "";
local sTotalRAM = "";
local sDate = "";
local sTime = "";
local sDrives = "";
-- таблица сведений о системе
tOSInfo = {};
--[[
Имя компьютера
]]--
-- имя компа берем из реестра
local sComputerName = Registry.GetValue(HKEY_LOCAL_MACHINE, "System\\ControlSet001\\Control\\ComputerName\\ActiveComputerName", "ComputerName", true);
-- если получили не пустую строку
if (sComputerName ~= "") then
-- добавляем значение в таблицу
tOSInfo.ComputerName = sComputerName;
end
--[[
Имя пользователя
]]--
tOSInfo.RegOwner = System.GetUserInfo().RegOwner;
--[[
Операционная система
]]--
-- название системы
local sOSName = System.GetOSName();
-- таблица версий ОС
local tOSVersionInfo = System.GetOSVersionInfo();
-- формируем строку инфы об операционке
local sOS = sOSName.. " "..tOSVersionInfo.CSDVersion.." (build "..tOSVersionInfo.BuildNumber..")";
tOSInfo.OS = sOS;
--[[
Процессор
]]--
-- имя процессора
local cProcessorName = String.TrimLeft(Registry.GetValue(HKEY_LOCAL_MACHINE, "Hardware\\Description\\System\\CentralProcessor\\0", "ProcessorNameString", true), nil);
tOSInfo.ProcessorName = cProcessorName;
-- частоа процессора
cMHz = Registry.GetValue(HKEY_LOCAL_MACHINE, "Hardware\\Description\\System\\CentralProcessor\\0", "~MHz", true);
tOSInfo.MHz = cMHz.." MHz";
local tKernels = Registry.GetKeyNames(HKEY_LOCAL_MACHINE, "Hardware\\Description\\System\\CentralProcessor");
if (tKernels) then
-- количество ядер
tOSInfo.KernelsNumber = Table.Count(tKernels);
end
--[[
Оперативная память
]]--
sTotalRAM = System.GetMemoryInfo().TotalRAM + 1 .. " Mb";
tOSInfo.TotalRAM = sTotalRAM;
--[[
IP
]]--
sIP = System.GetLANInfo().IP;
tOSInfo.IP = sIP;
--[[
Страна
]]--
sCountry = WinApi.GetLocaleInfo("1", "0x00000006");
tOSInfo.Country = sCountry;
--[[
Язык
]]--
sLanguage = WinApi.GetLocaleInfo("1", "0x00000002");
tOSInfo.Language = sLanguage;
--[[
Системная дата
]]--
sDate = System.GetDate(DATE_FMT_EUROPE);
tOSInfo.Date = sDate;
--[[
Системное время
]]--
sTime = System.GetTime(TIME_FMT_MIL);
tOSInfo.Time = sTime;
--[[
Локальные диски
]]--
-----------------------------------------------------
local function GetDrives()
tDrives = {}
local tDriveLetter = Drive.Enumerate();
if (tDriveLetter) then
for n, cDriveLetter in tDriveLetter do
if (Drive.GetType(cDriveLetter) == 3) then
sSize = String.GetFormattedSize(Drive.GetSize(cDriveLetter)*1024^2, FMTSIZE_GB, true);
tDrives[Table.Count(tDrives) + 1] = {DriveLetter = String.Left(cDriveLetter, 2), Size = sSize}
end
end
end
return tDrives;
end
-----------------------------------------------------
local tDrives = GetDrives();
for n, tDrive in tDrives do
sDrives = sDrives..tDrive.DriveLetter.." - "..tDrive.Size.." всего\r\n ";
end
tOSInfo.Drives = sDrives;
return tOSInfo;
end
On Preload
OSInfo();
Input.SetText("Input1", tOSInfo.ComputerName);
Input.SetText("Input2", tOSInfo.Country);
Input.SetText("Input3", tOSInfo.Language);
Input.SetText("Input4", tOSInfo.RegOwner);
Input.SetText("Input5", tOSInfo.IP);
Input.SetText("Input6", tOSInfo.OS);
Input.SetText("Input7", tOSInfo.ProcessorName);
Input.SetText("Input8", tOSInfo.KernelsNumber);
Input.SetText("Input9", tOSInfo.MHz);
Input.SetText("Input10", tOSInfo.TotalRAM);
Input.SetText("Input11", tOSInfo.Date);
Input.SetText("Input12", tOSInfo.Time);
Input.SetText("Input13", tOSInfo.Drives);