【发布时间】:2012-11-25 00:24:38
【问题描述】:
有人知道确定进程输入线程的方法吗?
场景是我想调用GetKeyboardLayout,从一个单独的应用程序(可以是任何程序)中传入输入线程ID。每个线程都可以有自己的键盘输入语言集,但是为另一个进程找到合适的输入线程 ID 似乎是不可能的。
例如,我创建了一个函数,向其中传递记事本的进程 ID,该函数在内部确定输入线程 ID,并从 GetKeyboardLayout 返回值。然后,此函数的调用者将在屏幕上显示为记事本选择的输入语言。
各位好心人有什么想法吗?
【问题讨论】:
-
哦,并且没有创建系统范围的挂钩来捕获 WM_INPUTLANGCHANGE。并不是说我肯定会 100% 覆盖它,但这根本不是一个选择(就我的情况而言)。
-
如果您对某个特定窗口感兴趣,可以使用
GetWindowThreadProcessId获取创建该窗口的线程的线程ID。