> >On Error * >lcComputer = "." >loWMIService = Getobject("winmgmts:\\" + lcComputer + "\root\cimv2") >colItems = loWMIService.ExecQuery("Select * from Win32_Keyboard") >For Each loItem In colItems > ?"Caption: " + loItem.Caption > ?"Description: " + loItem.Description > ?"Device ID: " + loItem.DeviceID > ?"Is Locked: " + loItem.IsLocked > ?"Layout: " + Transform(loItem.Layout) > ?"Name: " + loItem.Name > ?"Number of Function Keys: " + Transf(loItem.NumberOfFunctionKeys) > ?"Password: " + loItem.Password > ?"PNP Device ID: " + loItem.PNPDeviceID >Next > >>
On Error * >lcComputer = "." >loWMIService = Getobject("winmgmts:\\" + lcComputer + "\root\cimv2") >colItems = loWMIService.ExecQuery("Select * from Win32_PointingDevice") >For Each loItem In colItems > ?"Description: " + loItem.Description > ?"Device ID: " + loItem.DeviceID > ?"Device Interface: " + Transform(loItem.DeviceInterface) > ?"Double Speed Threshold: " + Transform(loItem.DoubleSpeedThreshold) > ?"Handedness: " + Transform(loItem.Handedness) > ?"Hardware Type: " + loItem.HardwareType > ?"INF File Name: " + loItem.InfFileName > ?"INF Section: " + loItem.InfSection > ?"Manufacturer: " + loItem.Manufacturer > ?"Name: " + loItem.Name > ?"Number Of Buttons: " + Transform(loItem.NumberOfButtons) > ?"PNP Device ID: " + loItem.PNPDeviceID > ?"Pointing Type: " + Transform(loItem.PointingType) > ?"Quad Speed Threshold: " + Transform(loItem.QuadSpeedThreshold) > ?"Resolution: " + loItem.Resolution > ?"Sample Rate: " + loItem.SampleRate > ?"Synch: " + loItem.Synch >Next >>
On Error * >lcComputer = "." >loWMIService = GetObject("winmgmts:\\" + lcComputer + "\root\cimv2") >colItems = loWMIService.ExecQuery("Select * from Win32_SoundDevice") >For Each loItem in colItems >?"Description: " + loItem.Description >?"Device ID: " + loItem.DeviceID >?"DMA Buffer Size: " + loItem.DMABufferSize >?"Manufacturer: " + loItem.Manufacturer >?"MPU 401 Address: " + loItem.MPU401Address >?"Name: " + loItem.Name >?"PNP Device ID: " + loItem.PNPDeviceID >?"Product Name: " + loItem.ProductName >?"Status Information: " + loItem.StatusInfo >NextAll of them nice but if same with two computers, useless for copy-protection.