ra700
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Кому интересна эта тема, вот результат: 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 | В данном примере результат выводится в диалоговое окно. Исходя из своей задачи, обработаете под свои нужды. Например, вместо вывода в диалоговое окно, Код: sn = "SerialNumber: " .. Escape(objItem:SerialNumber()) | засовываете в переменную sn и сравниваете с ним считанное значение. Для идентификации можно использовать не только SerialNumber, но и другие данные из списка диалогового окна вместе с SerialNumber. 1. сначала утилитой считываете данные с компа того человека, кому привязываете свой софт. 2. в файле запуска софта пишете условие: считать серийный номер (или + еще что-то из списка), если он совпадает с sn, то запустить софт, если нет - закрыть. | Всего записей: 76 | Зарегистр. 08-05-2007 | Отправлено: 12:23 03-10-2012 | Исправлено: ra700, 12:31 03-10-2012 |
|