zoukankan      html  css  js  c++  java
  • C#切换输入法代码段

    string languageName="五笔";//查找第一个五笔输入法 
    foreach(InputLanguage l in InputLanguage.InstalledInputLanguages) 

    if(l.LayoutName.IndexOf(languageName)>=0

    InputLanguage.CurrentInputLanguage
    =l; 
    break

    }
    using System.Runtime.InteropServices;

    #region 解决窗口切换输入法变全角的问题

            
    //声明一些API函数
            [DllImport("imm32.dll")]
            
    internal static extern IntPtr ImmGetContext(IntPtr hwnd);
            [DllImport(
    "imm32.dll")]
            
    internal static extern bool ImmGetOpenStatus(IntPtr himc);
            [DllImport(
    "imm32.dll")]
            
    internal static extern bool ImmSetOpenStatus(IntPtr himc, bool b);
            [DllImport(
    "imm32.dll")]
            
    internal static extern bool ImmGetConversionStatus(IntPtr himc, ref int lpdw, ref int lpdw2);
            [DllImport(
    "imm32.dll")]
            
    internal static extern int ImmSimulateHotKey(IntPtr hwnd, int lngHotkey);
            
    private const int IME_CMODE_FULLSHAPE = 0x8;
            
    private const int IME_CHOTKEY_SHAPE_TOGGLE = 0x11;
            
    //重载Form的OnActivated

            
    protected override void OnActivated(EventArgs e)
            {
                
    base.OnActivated(e);
                IntPtr HIme 
    = ImmGetContext(this.Handle);
                
    if (ImmGetOpenStatus(HIme))  //如果输入法处于打开状态
                {
                    
    int iMode = 0;
                    
    int iSentence = 0;
                    
    bool bSuccess = ImmGetConversionStatus(HIme, ref iMode, ref iSentence);  //检索输入法信息
                    if (bSuccess)
                    {
                        
    if ((iMode & IME_CMODE_FULLSHAPE) > 0)   //如果是全角
                            ImmSimulateHotKey(this.Handle, IME_CHOTKEY_SHAPE_TOGGLE);  //转换成半角
                    }
                }
            }
    #endregion 解决窗口切换输入法变全角的问题 
  • 相关阅读:
    经典网络复现(0)多层感知机和lenet
    将自有数据集下yolov训练结果(*.weights) 在进行部署
    DL基础学习计划
    自有数据集上使用keras训练YOLOv3目标检测
    《基于深度学习的图像语义分割方法综述》阅读理解
    Hessian矩阵以及在血管增强中的应用—OpenCV实现
    QML官方例子Calculator初步解析
    human_pose_estimation_demo的再进一步研究(基于OpenPOSE)
    10年图像处理工程师学习图像处理的小结
    human_pose_estimation_demo的进一步研究(基于OpenPOSE)
  • 原文地址:https://www.cnblogs.com/linmilove/p/1718789.html
Copyright © 2011-2022 走看看