0 Members and 1 Guest are viewing this topic.
(DEFUN WMIGETSREENRESOLUTION (/ ITEM METH1 METH2 S ITEMS WMI HR) (VL-LOAD-COM) (SETQ WMI (VLAX-CREATE-OBJECT "WbemScripting.SWbemLocator") METH1 (VLAX-INVOKE WMI 'CONNECTSERVER NIL NIL NIL NIL NIL NIL NIL NIL) METH2 (VLAX-INVOKE METH1 'EXECQUERY "Select * from Win32_VideoController") HR (VLAX-FOR ITEM METH2 (SETQ ITEMS (LIST (VLAX-GET ITEM 'CURRENTHORIZONTALRESOLUTION) (VLAX-GET ITEM 'CURRENTVERTICALRESOLUTION )))) ) (VLAX-RELEASE-OBJECT METH1) (VLAX-RELEASE-OBJECT METH2) (VLAX-RELEASE-OBJECT WMI) HR);;;(defun WmiGetOsSerialNumber (/ item meth1 meth2 s serx wmi) (vl-load-com) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (VLAX-INVOKE WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "select SerialNumber from Win32_OperatingSystem") s (vlax-for item meth2 (setq serx (list (vlax-get item 'SerialNumber)))) ) (vlax-release-object meth1) (vlax-release-object meth2) (vlax-release-object wmi) (car s));;;(defun WmiGetOsCaption (/ item meth1 meth2 s serx wmi) (vl-load-com) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (VLAX-INVOKE WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "select Caption from Win32_OperatingSystem") s (vlax-for item meth2 (setq serx (list (vlax-get item 'Caption)))) ) (vlax-release-object meth1) (vlax-release-object meth2) (vlax-release-object wmi) (car s));;;(defun WmiTotalPhysicalMemory (/ item meth1 meth2 s serx wmi) (vl-load-com) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (VLAX-INVOKE WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "select TotalPhysicalMemory from Win32_LogicalMemoryConfiguration") s (vlax-for item meth2 (setq serx (list (vlax-get item 'TotalPhysicalMemory)))) ) (vlax-release-object meth1) (vlax-release-object meth2) (vlax-release-object wmi) (strcat (itoa (fix (/ (car s) 1024))) " Mbytes"));;;(defun wmiMaxClockSpeed (/ item meth1 meth2 s serx wmi) (vl-load-com) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (VLAX-INVOKE WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "select MaxClockSpeed from Win32_Processor") s (vlax-for item meth2 (setq serx (list (vlax-get item 'MaxClockSpeed)))) ) (vlax-release-object meth1) (vlax-release-object meth2) (vlax-release-object wmi) (strcat (itoa (car s)) " MHz"));;;(defun wmiProcessorType (/ item meth1 meth2 s serx wmi) (vl-load-com) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (VLAX-INVOKE WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "select Name from Win32_Processor") s (vlax-for item meth2 (setq serx (list (vlax-get item 'Name)))) ) (vlax-release-object meth1) (vlax-release-object meth2) (vlax-release-object wmi) (car s));;;(defun wmiProcessorType2 (/ item meth1 meth2 s serx wmi) (vl-load-com) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (VLAX-INVOKE WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "select DataWidth from Win32_Processor") s (vlax-for item meth2 (setq serx (list (vlax-get item 'DataWidth)))) ) (vlax-release-object meth1) (vlax-release-object meth2) (vlax-release-object wmi) (car s));;;(defun wmiProcessorType3 (/ item meth1 meth2 s serx wmi) (vl-load-com) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (VLAX-INVOKE WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "select Architecture from Win32_Processor") s (vlax-for item meth2 (setq serx (list (vlax-get item 'Architecture)))) ) (vlax-release-object meth1) (vlax-release-object meth2) (vlax-release-object wmi) (car s))
(defun MainBoardSerial (/ item meth1 meth2 s serx wmi) (vl-load-com) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (VLAX-INVOKE WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "select SerialNumber from Win32_BaseBoard") s (vlax-for item meth2 (setq serx (list (vlax-get item 'SerialNumber)))) ) (vlax-release-object meth1) (vlax-release-object meth2) (vlax-release-object wmi) (car s))
class Win32_BaseBoard : CIM_Card{ string Caption; string ConfigOptions[]; string CreationClassName; real32 Depth; string Description; real32 Height; boolean HostingBoard; boolean HotSwappable; datetime InstallDate; string Manufacturer; string Model; string Name; string OtherIdentifyingInfo; string PartNumber; boolean PoweredOn; string Product; boolean Removable; boolean Replaceable; string RequirementsDescription; boolean RequiresDaughterBoard; string SerialNumber; string SKU; string SlotLayout; boolean SpecialRequirements; string Status; string Tag; string Version; real32 Weight; real32 Width;};
class Win32_DiskDrive : CIM_DiskDrive{ uint16 Availability; uint32 BytesPerSector; uint16 Capabilities[]; string CapabilityDescriptions[]; string Caption; string CompressionMethod; uint32 ConfigManagerErrorCode; boolean ConfigManagerUserConfig; string CreationClassName; uint64 DefaultBlockSize; string Description; string DeviceID; boolean ErrorCleared; string ErrorDescription; string ErrorMethodology; string FirmwareRevision; uint32 Index; datetime InstallDate; string InterfaceType; uint32 LastErrorCode; string Manufacturer; uint64 MaxBlockSize; uint64 MaxMediaSize; boolean MediaLoaded; string MediaType; uint64 MinBlockSize; string Model; string Name; boolean NeedsCleaning; uint32 NumberOfMediaSupported; uint32 Partitions; string PNPDeviceID; uint16 PowerManagementCapabilities[]; boolean PowerManagementSupported; uint32 SCSIBus; uint16 SCSILogicalUnit; uint16 SCSIPort; uint16 SCSITargetId; uint32 SectorsPerTrack; string SerialNumber; uint32 Signature; uint64 Size; string Status; uint16 StatusInfo; string SystemCreationClassName; string SystemName; uint64 TotalCylinders; uint32 TotalHeads; uint64 TotalSectors; uint64 TotalTracks; uint32 TracksPerCylinder;};
System::String^ GetWindowsID() { String ^value = nullptr; try { ManagementScope ^scope = gcnew ManagementScope("\\\\LocalHost\\root\\cimv2"); ObjectQuery ^oQuery = gcnew ObjectQuery("Select SerialNumber from win32_operatingsystem "); ManagementObjectSearcher ^oSearcher = gcnew ManagementObjectSearcher(scope,oQuery); ManagementObjectCollection ^col = oSearcher->Get(); for each(ManagementObject ^o in col) { value = o["SerialNumber"]->ToString(); break; } } catch (System::Exception ^e) { sds_alert(CString(e->Message)); } return value; }
Its worth it to learn a little WMI mojo as you can use it with other languges as wellIn fact I just used it last week with C++/CLI && .net
I just tried to retrieve the serial number from the HD .. it returned nil ... did I miss something?
(vl-load-com)(defun GetMacAddress (/ LocatorObj ServiceObj SecurityObj ObjectSetObj OutList) (setq LocatorObj (vlax-create-object "WbemScripting.SWbemLocator")) (setq ServiceObj (vlax-invoke LocatorObj 'ConnectServer nil nil nil nil nil nil nil nil) ) (setq ObjectSetObj (vlax-invoke ServiceObj 'ExecQuery "Select * from Win32_NetworkAdapter") ) (vlax-for Obj ObjectSetObj (if (wcmatch (vl-princ-to-string (vlax-get Obj 'AdapterType)) "Ethernet 802.*") (setq OutList (cons (vlax-get Obj 'MACAddress) OutList)) ) ) (foreach Obj (list LocatorObj ServiceObj SecurityObj ObjectSetObj) (and Obj (vlax-release-object Obj)) ) OutList)
;;;(defun WmiTotalPhysicalMemory (/ item meth1 meth2 s serx wmi) (vl-load-com) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator") meth1 (VLAX-INVOKE WMI 'ConnectServer nil nil nil nil nil nil nil nil) meth2 (vlax-invoke meth1 'ExecQuery "select TotalPhysicalMemory from Win32_LogicalMemoryConfiguration") s (vlax-for item meth2 (setq serx (list (vlax-get item 'TotalPhysicalMemory)))) ) (vlax-release-object meth1) (vlax-release-object meth2) (vlax-release-object wmi) (strcat (itoa (fix (/ (car s) 1024))) " Mbytes"));;;