Кому интересна эта тема, вот результат:
OnClick:
Код: function Escape(v)
if (v == nil) then return ""; end
if (type(v) == "table") then return Table.Concat(v, ", "); end
if (type(v) == "boolean") then
if (v == true) then
return "Yes";
else
return "No";
end
end
return v;
end
function WMIDateStringToDate(dtmDate)
if dtmDate then
dtmDate = tostring(dtmDate);
return (String.Mid(dtmDate, 7, 2) .. "/" ..
String.Mid(dtmDate, 5, 2) .. "/" ..
String.Left(dtmDate, 4) .. " " ..
String.Mid(dtmDate, 9, 2) .. ":" ..
String.Mid(dtmDate, 11, 2) .. ":" ..
String.Mid(dtmDate,13, 2));
else
return "";
end
end
local strOutputTitle = "";
local strOutput = "";
strOutputTitle = strOutputTitle .. "Computer: localhost\r\n";
strOutputTitle = strOutputTitle .. "==========================================\r\n\r\n";
local objWMIService = luacom.GetObject("winmgmts:\\\\.\\root\\CIMV2");
local objColItems = objWMIService:ExecQuery("SELECT * FROM Win32_BaseBoard", "WQL", 48);
if (objColItems) then
local oEnum = luacom.GetEnumerator(objColItems);
local objItem = oEnum:Next();
while (objItem) do
strOutput = strOutput .. "Caption: " .. Escape(objItem:Caption()) .. "\r\n";
strOutput = strOutput .. "ConfigOptions: " .. Escape(objItem.ConfigOptions(0)) .. "\r\n";
strOutput = strOutput .. "CreationClassName: " .. Escape(objItem:CreationClassName()) .. "\r\n";
strOutput = strOutput .. "Depth: " .. Escape(objItem:Depth()) .. "\r\n";
strOutput = strOutput .. "Description: " .. Escape(objItem:Description()) .. "\r\n";
strOutput = strOutput .. "Height: " .. Escape(objItem:Height()) .. "\r\n";
strOutput = strOutput .. "HostingBoard: " .. Escape(objItem:HostingBoard()) .. "\r\n";
strOutput = strOutput .. "HotSwappable: " .. Escape(objItem:HotSwappable()) .. "\r\n";
strOutput = strOutput .. "InstallDate: " .. WMIDateStringToDate(objItem:InstallDate()) .. "\r\n";
strOutput = strOutput .. "Manufacturer: " .. Escape(objItem:Manufacturer()) .. "\r\n";
strOutput = strOutput .. "Model: " .. Escape(objItem:Model()) .. "\r\n";
strOutput = strOutput .. "Name: " .. Escape(objItem:Name()) .. "\r\n";
strOutput = strOutput .. "OtherIdentifyingInfo: " .. Escape(objItem:OtherIdentifyingInfo()) .. "\r\n";
strOutput = strOutput .. "PartNumber: " .. Escape(objItem:PartNumber()) .. "\r\n";
strOutput = strOutput .. "PoweredOn: " .. Escape(objItem:PoweredOn()) .. "\r\n";
strOutput = strOutput .. "Product: " .. Escape(objItem:Product()) .. "\r\n";
strOutput = strOutput .. "Removable: " .. Escape(objItem:Removable()) .. "\r\n";
strOutput = strOutput .. "Replaceable: " .. Escape(objItem:Replaceable()) .. "\r\n";
strOutput = strOutput .. "RequirementsDescription: " .. Escape(objItem:RequirementsDescription()) .. "\r\n";
strOutput = strOutput .. "RequiresDaughterBoard: " .. Escape(objItem:RequiresDaughterBoard()) .. "\r\n";
strOutput = strOutput .. "SerialNumber: " .. Escape(objItem:SerialNumber()) .. "\r\n";
strOutput = strOutput .. "SKU: " .. Escape(objItem:SKU()) .. "\r\n";
strOutput = strOutput .. "SlotLayout: " .. Escape(objItem:SlotLayout()) .. "\r\n";
strOutput = strOutput .. "SpecialRequirements: " .. Escape(objItem:SpecialRequirements()) .. "\r\n";
strOutput = strOutput .. "Status: " .. Escape(objItem:Status()) .. "\r\n";
strOutput = strOutput .. "Tag: " .. Escape(objItem:Tag()) .. "\r\n";
strOutput = strOutput .. "Version: " .. Escape(objItem:Version()) .. "\r\n";
strOutput = strOutput .. "Weight: " .. Escape(objItem:Weight()) .. "\r\n";
strOutput = strOutput .. "Width: " .. Escape(objItem:Width()) .. "\r\n";
if Dialog.Message("WMI Output", strOutputTitle .. strOutput, 1) == 2 then break end
Output = "";
objItem = oEnum:Next();
end
else
Dialog.Message("WMI Output", "No WMI Objects Found for class: Win32_BaseBoard");
end
OnClick:
Код: function Escape(v)
if (v == nil) then return ""; end
if (type(v) == "table") then return Table.Concat(v, ", "); end
if (type(v) == "boolean") then
if (v == true) then
return "Yes";
else
return "No";
end
end
return v;
end
function WMIDateStringToDate(dtmDate)
if dtmDate then
dtmDate = tostring(dtmDate);
return (String.Mid(dtmDate, 7, 2) .. "/" ..
String.Mid(dtmDate, 5, 2) .. "/" ..
String.Left(dtmDate, 4) .. " " ..
String.Mid(dtmDate, 9, 2) .. ":" ..
String.Mid(dtmDate, 11, 2) .. ":" ..
String.Mid(dtmDate,13, 2));
else
return "";
end
end
local strOutputTitle = "";
local strOutput = "";
strOutputTitle = strOutputTitle .. "Computer: localhost\r\n";
strOutputTitle = strOutputTitle .. "==========================================\r\n\r\n";
local objWMIService = luacom.GetObject("winmgmts:\\\\.\\root\\CIMV2");
local objColItems = objWMIService:ExecQuery("SELECT * FROM Win32_BaseBoard", "WQL", 48);
if (objColItems) then
local oEnum = luacom.GetEnumerator(objColItems);
local objItem = oEnum:Next();
while (objItem) do
strOutput = strOutput .. "Caption: " .. Escape(objItem:Caption()) .. "\r\n";
strOutput = strOutput .. "ConfigOptions: " .. Escape(objItem.ConfigOptions(0)) .. "\r\n";
strOutput = strOutput .. "CreationClassName: " .. Escape(objItem:CreationClassName()) .. "\r\n";
strOutput = strOutput .. "Depth: " .. Escape(objItem:Depth()) .. "\r\n";
strOutput = strOutput .. "Description: " .. Escape(objItem:Description()) .. "\r\n";
strOutput = strOutput .. "Height: " .. Escape(objItem:Height()) .. "\r\n";
strOutput = strOutput .. "HostingBoard: " .. Escape(objItem:HostingBoard()) .. "\r\n";
strOutput = strOutput .. "HotSwappable: " .. Escape(objItem:HotSwappable()) .. "\r\n";
strOutput = strOutput .. "InstallDate: " .. WMIDateStringToDate(objItem:InstallDate()) .. "\r\n";
strOutput = strOutput .. "Manufacturer: " .. Escape(objItem:Manufacturer()) .. "\r\n";
strOutput = strOutput .. "Model: " .. Escape(objItem:Model()) .. "\r\n";
strOutput = strOutput .. "Name: " .. Escape(objItem:Name()) .. "\r\n";
strOutput = strOutput .. "OtherIdentifyingInfo: " .. Escape(objItem:OtherIdentifyingInfo()) .. "\r\n";
strOutput = strOutput .. "PartNumber: " .. Escape(objItem:PartNumber()) .. "\r\n";
strOutput = strOutput .. "PoweredOn: " .. Escape(objItem:PoweredOn()) .. "\r\n";
strOutput = strOutput .. "Product: " .. Escape(objItem:Product()) .. "\r\n";
strOutput = strOutput .. "Removable: " .. Escape(objItem:Removable()) .. "\r\n";
strOutput = strOutput .. "Replaceable: " .. Escape(objItem:Replaceable()) .. "\r\n";
strOutput = strOutput .. "RequirementsDescription: " .. Escape(objItem:RequirementsDescription()) .. "\r\n";
strOutput = strOutput .. "RequiresDaughterBoard: " .. Escape(objItem:RequiresDaughterBoard()) .. "\r\n";
strOutput = strOutput .. "SerialNumber: " .. Escape(objItem:SerialNumber()) .. "\r\n";
strOutput = strOutput .. "SKU: " .. Escape(objItem:SKU()) .. "\r\n";
strOutput = strOutput .. "SlotLayout: " .. Escape(objItem:SlotLayout()) .. "\r\n";
strOutput = strOutput .. "SpecialRequirements: " .. Escape(objItem:SpecialRequirements()) .. "\r\n";
strOutput = strOutput .. "Status: " .. Escape(objItem:Status()) .. "\r\n";
strOutput = strOutput .. "Tag: " .. Escape(objItem:Tag()) .. "\r\n";
strOutput = strOutput .. "Version: " .. Escape(objItem:Version()) .. "\r\n";
strOutput = strOutput .. "Weight: " .. Escape(objItem:Weight()) .. "\r\n";
strOutput = strOutput .. "Width: " .. Escape(objItem:Width()) .. "\r\n";
if Dialog.Message("WMI Output", strOutputTitle .. strOutput, 1) == 2 then break end
Output = "";
objItem = oEnum:Next();
end
else
Dialog.Message("WMI Output", "No WMI Objects Found for class: Win32_BaseBoard");
end