Since Win 8.1 reimagining happens to me nearly every week, because of that: https://superuser.com/questions/744564/any-solution-appeared-to-fix-win-8-1-drivers-disaster-keyboard-stopped-to-work/747108#747108
I decided to write the program that will run at OS startup, wait for 1 minute (make sure that all drivers should be loaded) and check, if keyboard and mouse in bad state:
And, if bad state found, begins to copy needed for me folders from dick C to backup drive, so I can restore it later, after reimage disk C.
Based on my another question about receiving motherboard ID, I know I can query some info with ManagementObjectSearcher, but it does not give any info about device state.
[Caption][Base board]
[ConfigOptions][NULL]
[CreationClassName][Win32_BaseBoard]
[Depth][NULL]
[Description][Base board]
[Height][NULL]
[HostingBoard][True]
[HotSwappable][False]
[InstallDate][NULL]
[Manufacturer][Gigabyte Technology Co., Ltd.]
[Model][NULL]
[Name][Base board]
[OtherIdentifyingInfo][NULL]
[PartNumber][NULL]
[PoweredOn][True]
[Product][H55M-S2H]
[Removable][False]
[Replaceable][True]
[RequirementsDescription][NULL]
[RequiresDaughterBoard][False]
[SerialNumber][ ]
[SKU][NULL]
[SlotLayout][NULL]
[SpecialRequirements][NULL]
[Status][OK]
[Tag][Base Board]
[Version][x.x]
[Weight][NULL]
[Width][NULL]
So, how I can check if keyboard and mouse is broken? I prefer .net solution, but of course it can be C or C++