Updated Help (markdown)

Jed Laundry
2025-06-22 17:07:42 +12:00
parent 357ba7d60d
commit cfba9ac224

15
Help.md

@@ -1,15 +1,16 @@
# Help
## SendInput and SendKeys
Because applications handle the input stream differently, you can select either the SendInput or SendKeys method of typing characters.
**SendInput** uses the [VirtualKeyFromKey method](https://learn.microsoft.com/en-us/dotnet/api/system.windows.input.keyinterop.virtualkeyfromkey) to map each character into your current keyboard layout scancode, and then the [Win32 SendInput](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-sendinput) function to send keys into the input stream - which means if you are using different keyboard layouts (particularly over RDP), this is probably the method you want.
## Known Issues
**SendKeys** uses the [SendKeys.Send method](https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.sendkeys.send), which uses the same Win32 SendInput function, but with a lot more error handing - making it more robust, but lacking any support for different keyboard layouts.
## Known and Resolved Issues
* **VMWare vSphere Web Console** doesn't work with Chrome/Edge due to the way vSphere processes vScanCode values and what Chrome/Edge provide. [#6](https://github.com/jlaundry/TypeClipboard/issues/6).
* I don't have a fix for this. I recommend you use Firefox or VMRC instead.
## Resolved Issues
* **VMWare / Omnissa Horizon desktop client** uses a low-level keyboard driver, which SendKeys can't send to.
* This may be fixed in v1.5 - I need feedback please!
* This may be fixed in v1.6 with the SendInput method - I need feedback please!
* **Using different keyboard layouts** between source and destination causes the sent keys to be mapped to the destination key location, not the intended source value. [#2](https://github.com/jlaundry/TypeClipboard/issues/2) [#3](https://github.com/jlaundry/TypeClipboard/issues/3)
* Fixed in v1.5: https://github.com/jlaundry/TypeClipboard/releases/tag/v1.5.0
* Fixed in v1.5 with the SendInput method