djpnewton / vmulti

Virtual Multiple HID Driver (multitouch, mouse, digitizer, keyboard, joystick)
MIT License
401 stars 171 forks source link

Cannot uninstall vmulti driver #27

Closed thomaswp closed 8 years ago

thomaswp commented 8 years ago

I'm unable to remove the "vmultia HID" device from my computer. I've tried booting in safe mode, and still no Disable or Uninstall option.

untitled

I don't know what installed this driver in the first place (I didn't, but it may have been a dependency of something else I did install). Can you please advise how to get rid of it? It's causing issues with some other applications. (Also, is there any way to figure out what program installed it?)

thomaswp commented 8 years ago

Well, after quite a bit of searching I figured out that your application installs not one, but many device drivers, under HIDs, Keyboards and Mice, and all of them depend on the vmultia driver. Uninstalling those allowed me to uninstall the base vmulti driver.

As an aside, being a developer myself, I find it a bit irresponsible that you've created this driver that strongly alters the behavior of the operating system (making it think, for instance, that you have touch and pen devices), and you include no uninstaller or registration with the OS to make the program visible to the average user. (Applications have been telling me for a year now I have touch input, which I dismissed as an odd quirk until today.) I get this is a library used by others, and you're not directly responsible for how it gets installed, but it's something to think about. Best of luck with your development.

djpnewton commented 8 years ago

See https://github.com/djpnewton/vmulti/issues/24#issuecomment-225464752

I have not distributed an installer for this driver nor even binary builds. The driver on your system is signed by "Texas A&M University | Interface Ecology Lab" perhaps you got it from here http://ecologylab.net

ihor-drachuk commented 3 years ago

In short:

devcon.exe -r remove *vmulti* (run twice)
pnputil /delete-driver oem9.inf /force

oem9 replace by yours. To determine which one you should pass, see