zoukankan      html  css  js  c++  java
  • 2019-6-23-WPF-获得当前输入法语言区域

    title author date CreateTime categories
    WPF 获得当前输入法语言区域
    lindexi
    2019-06-23 11:51:21 +0800
    2018-10-12 11:5:41 +0800
    WPF

    本文告诉大家如何获得 WPF 输入法的语言区域

    需要使用 user32 的方法,很简单,请看下面

           [DllImport("user32.dll")] static extern IntPtr GetForegroundWindow();
            [DllImport("user32.dll")] static extern uint GetWindowThreadProcessId(IntPtr hwnd, IntPtr proccess);
            [DllImport("user32.dll")] static extern IntPtr GetKeyboardLayout(uint thread);
    
            public CultureInfo GetCurrentKeyboardLayout()
            {
                try
                {
                    IntPtr foregroundWindow = GetForegroundWindow();
                    uint foregroundProcess = GetWindowThreadProcessId(foregroundWindow, IntPtr.Zero);
                    int keyboardLayout = GetKeyboardLayout(foregroundProcess).ToInt32() & 0xFFFF;
                    return new CultureInfo(keyboardLayout);
                }
                catch (Exception)
                {
                    return new CultureInfo(1033); // Assume English if something went wrong.
                }
            }

    因为没有提供语言区域变化的事件,所以需要自己写一个循环来获取

    在界面添加一个 TextBlock 请看下面

        <Grid>
            <TextBlock x:Name="CeareamearTreseretal" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
        </Grid>

    这样可以在后台代码给一个值

            private async void HairjurNalllairmo()
            {
                while (true)
                {
                    await Task.Delay(100);
                    CeareamearTreseretal.Text = GetCurrentKeyboardLayout().DisplayName;
                }
            }

    这时修改语言区域就可以看到变化

    参见 C#: Get current keyboard layoutinput language

  • 相关阅读:
    高斯消元法
    DP:Making the Grade(POJ 3666)
    Heap:Sunscreen(POJ 3614)
    ShortestPath:Silver Cow Party(POJ 3268)
    ShortestPath:Wormholes(POJ 3259)
    ShortestPath:Six Degrees of Cowvin Bacon(POJ 2139)
    DP:Bridging Signals(POJ 1631)
    DP:Wooden Sticks(POJ 1065)
    Greedy:Protecting the Flowers(POJ 3262)
    Greedy:Stripes(POJ 1826)
  • 原文地址:https://www.cnblogs.com/lindexi/p/12085870.html
Copyright © 2011-2022 走看看