Hello Kadia, Gokul,
Welcome to Microsoft Q&A forum.
Regarding your questions:
- TextInputHost.exe, as the name also stated, this is the UI/experience host for moder text input surface, which include the touch keyboard.
- For modern keyboard, TabTip.exe will be the one who spawn TextInputHost.exe, which indicate it act like a trigger point. I think this might be the reason why you see 2 keyboards. Your app is invoking the legacy TabTip while Windows explorer create the modern one.
- Renaming could break pathway that is using the affected process, many pathways was created assuming that the component exists and can be activated. Killing the component could force some of those pathways to fallback to legacy, while technically the component is still running when you rename it, so it could cause confusion in the system. In short, Renaming breaks the component’s presence/activation/registration, which can collapse multiple input paths. Killing is a runtime failure that can still leave enough plumbing for legacy invocation to continue.
- Continuously killing a component is definitely not a supported method. What can lead to is possibly UAC misbehavior, issue with other input surface like emojis. Also, even if a script can do it repeatedly now. It might be irrelevant in the next update.
- To prevent this, I've tried to find but it seems like there is no current supported ways for this. However, you can do so by preventing Windows invocation or create a shell with no explorer. You can change it in the settings by right clicking on the taskbar > Taskbar settings and set the Touch Keyboard to never. However, that will mean the modern touch keyboard won't appear at all.
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.