Автор: saavaage
Дата сообщения: 01.11.2009 00:50
tavria2, получается, что Ваш -более универсален. Тогда вопрос по штатным скриптам (см. ниже) - будут ли они работать и в висте/7? и если нет, то куда рыть для получения универсального результата?
Label.SetText("Label3","");
drive_free = Drive.GetFreeSpace(_WindowsFolder);
Label.SetText("Label3", drive_free);
-----------------------------------------------------------------------------------------
Label.SetText("Label5","");
result = System.GetOSName();
Label.SetText("Label5", result.." /");
-------------------------------------------------------------------------------------------
Label.SetText("Label4","");
result = System.GetMemoryInfo().TotalRAM +1;
Label.SetText("Label4", result);
----------------------------------------------------------------------------------------------
Label.SetText("Label2","");
cMHz = Registry.GetValue(HKEY_LOCAL_MACHINE, "Hardware\\Description\\System\\CentralProcessor\\0", "~MHz", true);
Label.SetText("Label2", cMHz.." /")
-------------------------------------------------------------------------------------------------
Label.SetText("Label6","");
tKernels = Registry.GetKeyNames(HKEY_LOCAL_MACHINE, "Hardware\\Description\\System\\CentralProcessor");
if (tKernels) then
-- количество ядер
KernelsNumber = Table.Count(tKernels);
end
Label.SetText("Label6", KernelsNumber);
-----------------------------------------------------------------------------------------------------
Label.SetText("Label1","");
-- Check if the OS is 64 bit
b64Bit = System.Is64BitOS();
if b64Bit then
Label.SetText("Label1", "64");
else
Label.SetText("Label1", "32");
end
-------------------------------------------------------------------------------------------------
Label.SetText("Label7","");
system_drive = String.Left(_WindowsFolder, 2);
Label.SetText("Label7", system_drive);
---------------------------------------------------------------------------------------------------
Label.SetText("Label8","");
function GetUserName()
local sUserName = "";
mem = Memory.Allocate(256)
len = Memory.Allocate(16)
Memory.PutLong(len, 256)
ret = tonumber(DLL.CallFunction("advapi32.dll", "GetUserNameA", mem..", "..len, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL))
if ret ~= 0 then
sUserName = Memory.GetString(mem, Memory.GetLong(len), "Ascii");
end
Memory.Free(mem)
Memory.Free(len)
return sUserName
end
-----------------------------------------------------------------
sUserName = GetUserName(); -- имя текущего пользователя в системе
if sUserName ~= "" then -- если есть имя текущего пользователя в системе
-- путь к пиктограмме текущего пользователя
sImagePath = Shell.GetFolder(SHF_APPLICATIONDATA_COMMON).."\\Microsoft\\User Account Pictures\\"..sUserName..".bmp";
end
Label.SetText("Label8", sUserName);
Image.Load("Image2", sImagePath);
---------------------------------------------------------------------------------------
Label.SetText("Label9","");
Label.SetText("Label10","");
user_info = System.GetUserInfo();
if (not user_info.IsAdmin) then
Label.SetText("Label9","Нет!");
else
Label.SetText("Label10", "Есть!");
end