使用事件在Windows中观察,设置和获取活动语言

时间:2014-06-15 19:30:15

标签: windows events localization

我希望能够控制Windows 7中的活动输入语言。我希望能够设置它,获取它,并在它发生变化时收到通知。

我可以使用Windows事件(如Process Monitor记录的事件)来实现此目的吗?我是否应该过滤特定事件才能看到这些事件?

更新:如果您提供代码,我会尽可能选择Python。

1 个答案:

答案 0 :(得分:0)

是的,你可以。您想要的消息是:WM_INPUTLANGCHANGE

以下是python32中的一个示例:

def edit_proc(self, hwnd, msg, wparam, lparam):
  if msg == win32con.WM_INPUTLANGCHANGE:
    print 'User changed the input language'

基本上你正在做的是设置一个WndProc函数,它指定一个函数来接收给定Window的消息:

 self.old_edit_proc = win32gui.SetWindowLong(self.edit_hwnd,
                                                    win32con.GWL_WNDPROC,
                                                    self.edit_proc)

此示例来自此处:http://auralbits.blogspot.com/2014/02/a-native-win32-application-in-python.html