[SOLVED] Is there any Win 10 software to Enable/Disable two different HID keyboards ?

tedsorvino

Commendable
Oct 12, 2018
26
1
1,535
Is there any keyboard manager or similar software for two different HID keyboards or a simple way to disable/enable each one of them at a time without disconnecting the other in Windows 10?]

My Device Manager shows 5 HID keyboard entries under Keyboards, when I only have 2 keyboards attached and from there I can only uninstall a keyboard and not disable it.

Is this ok for temporary work and which keyboard should I use if I have to go that route since both have the same name? I don't want to mess too much with my drivers scheme with trial-error.
Under HID things are vague about controllers (many entries).


Thanks
 
Solution
No problem with "simple".

Reverse KVM for USB keyboards.

Just be sure to double check the hub/switch specifications and map out all plugs/ports withe respect to type and gender.

Ralston18

Titan
Moderator
You can do two things:

First launch Powershell as Admin and run the Get-PNPDevice cmdlet.

Get-PNPDevice

You should be able to either type in the cmdlet or copy the above line and paste at the PS> prompt.

The resulting output will be a rather long list of devices and device information. For the most part you will be interested in keyboard related results.

Second, go into Device Manager and look at the listed HID keyboards. (Ensure that under the View tab that "Show hidden devices is checked.)

You can right click any listed device and choose Properties for more information about the device.

Compare the listings.

You can shorten the Get-PNPDevice list by using:

Get-PNPDevice -FriendlyName "key"

Caveat: "key" being search criteria to focus on keyboards. Could either miss devices or pick up something extra.

===========

Results will be similar to the following ( cut & paste from my system):

Status Class FriendlyName InstanceId
------ ----- ------------ ----------
Unknown HIDClass Logitech HID Keyboard Consumer Controls HID\VID_046D...
OK Keyboard Logitech HID-compliant Unifying keyboard HID\VID_046D...
OK Keyboard HID Keyboard Device HID\VID_046D...
Unknown Keyboard Logitech HID-Compliant Keyboard HID\VID_046D...
Unknown HIDClass Logitech HID Keyboard Power Key HID\VID_046D...

Pick out the two physical keyboards that you want to use.

Then install a reverse KVM switch so you can, as warranted, select between those two keyboards.

I tend to check my Device Manager every so often and uninstall generic HID drivers.
 
  • Like
Reactions: tedsorvino

tedsorvino

Commendable
Oct 12, 2018
26
1
1,535
Thanks Ralston for the reply.
But I'm facing some problems following your route.
By going to device manager and viewing hidden devices, I've got 9 keyboard entries. Even a PS/2 keyboard.
By typing Get-PNPDevice the results are chaotic. The friendly name for keyboards is HID keyboard device.
By typing Get-PNPDevice -FriendlyName "HID keyboard device" I 've got all 9 keyboards. But it shows what's really installed.

But then I 've got no idea how to install reverse (or any type of) KVM switch. I mean software switch. If we are talking about hardware I can easily buy a usb hub. But I prefer to avoid it.
 
Last edited:

Ralston18

Titan
Moderator
Try this:

Get-PNPDevice -FriendlyName "key"

Noted a typo in my original response. Apologies.

What two keyboards are you using and what physical connectivity? I believe USB - correct?

Logically, the software will need to detect what keyboards are connected and then offer the user some means of choosing the desired keyboard.

Then after the user has made a choice, enable that keyboard and disable the other keyboards. The software will need to run in the background and be callable in some manner to allow the user to make a new choice.

About the closest I have found is the following link:

https://devblogs.microsoft.com/scripting/use-powershell-and-wmi-to-find-wireless-keyboard-mouse/

Depending on the differences between the keyboards being used you may be able to take advantage of detecting the respective keyboard layouts.

Overall, doable I think and I have no problem if someone suggests otherwise. Unfortunately (full disclosure) any actual implementation is going beyond my current level of Powershell skills.
 
  • Like
Reactions: tedsorvino

tedsorvino

Commendable
Oct 12, 2018
26
1
1,535
Yes. I'm using 2 generic usb keyboards
I can only see them in Powershell by using Get-PNPDevice -FriendlyName "HID keyboard device"
But I can't make Powershell offer me a choice. I will read the link but it seems very confusing for a casual user like me. And it seems like the solution is much more complicated than I expected.
 
Last edited:

Ralston18

Titan
Moderator
Indeed: "And it seems like the solution is much more complicated than I expected."

No disagreement - however, even though it is confusing I believe that the overall logic is straight forward.

With only two keyboards that could likely just require a toggle of some sort. Overall "If - Then - Else" logic....

The script would need to 1) identify what keyboards are available and then 2) solicit some user input regarding which keyboard to use.

Then the script would need to continuing running in the background waiting for 3) some input from the user that there is a desire/requirement to change the active keyboard.

Next 4) - toggle the keyboards

====

The requirements actually go beyond the need for just two physical keyboards.

What is the driving requirement for having two keyboards?

What can/does one keyboard do that the other keyboard cannot. And vice versa?

====

I did some research (aka "googling" :) ) and found a few related and interesting links:

You might be able to use/take advantage of some difference in the respective keyboard layouts:

View: https://www.reddit.com/r/PowerShell/comments/g9m0hg/how_to_change_the_keyboard_layout_from_powershell/


https://winaero.com/set-default-keyboard-layout-windows-10/

https://stackoverflow.com/questions/41096875/programmatically-change-keyboard-layout

Maybe you could get by with one keyboard but just change the layout.... ?

None of the above are solutions per se but do (at least to me) suggest that that is a possibility. Depending on the differences in the two keyboards and what you need each keyboard to be able to do.

https://powershell.one/wmi/root/cimv2/win32_keyboard

https://stackoverflow.com/questions...ouch-keyboard-full-keyboard-with-powershell-s

The second link involves registry edits and generally such things are a last resort. However, someone proficient in Powershell would know the risks and ensure that Registry etc. are all backed up.

Mostly thinking out loud. Likely there are options (hopefully) simple available. What is driving the need for two keyboards?
 
  • Like
Reactions: tedsorvino

tedsorvino

Commendable
Oct 12, 2018
26
1
1,535
I don't want layout change or things. I 've read about it some weeks ago. But I don't need something like that.
Ι have one keyboard full of shortcut stickers that I only use for a specific program and task. I don't want to use this for nothing else.
And I have no space for two keyboards all the time since both my keyboards are wired, so I want to place the one that it's working on top of the other.
Simple things. Nothing complicated but I do need 2 keyboards.
I think I will go the simple switched usb hub route (even if it's not the best solution- having the main keyboard on a hub)