您现在的位置是:首页 >

关闭软键盘快捷键 VS2005中C#用代码打开软键盘

火烧 2021-11-24 22:00:56 1079
VS2005中C#用代码打开软键盘 前段时间研究过API 后来由于工作关系就没有再玩C# 而别说API了 今天晚上正好加班 等其他部门出活等到凌晨一点多了 还没有动静 就趁机耍一耍了 正好学习一下VS

VS2005中C#用代码打开软键盘  

关闭软键盘快捷键 VS2005中C#用代码打开软键盘
     前段时间研究过API 后来由于工作关系就没有再玩C# 而别说API了 今天晚上正好加班 等其他部门出活等到凌晨一点多了 还没有动静 就趁机耍一耍了 正好学习一下VS   以前曾经见别人CSDN上面问过如何用程序打开软键盘 我也关注过 可没有结果 在网上搜了一下也没有能找出满意的答案 今天就拿这个开开刀吧 反正大项目也没有 只是一个小功能 结果没曾想 弄出来了 也有好久没有更新我的这一亩三分田了 就放上来了      献给那些为中国共享软件和提高中国程序水平作努力的人们      注 程序是在VS 里面 注意一下 控件需要自己添加了 一个ComboBox 一个Textbox 一个Button 直接拖进去没有更改name      以下程序开始   ==================================      using System;   using System Collections Generic;   using System ComponentModel;   using System Data;   using System Drawing;   using System Text;   using System Windows Forms;   using System Runtime InteropServices;      namespace InputLanguageSwitch   {    /// <summary>    /// 获取系统所有的输入法 并可以程序改变当前输入法 打开关闭软键盘    /// 程序 房客    /// QQ    /// Blog    /// </summary>    public partial class Form : Form    {    public Form ()    {    InitializeComponent();    this InputLanguageChanged += new InputLanguageChangedEventHandler(Form _InputLanguageChanged);    }       void Form _InputLanguageChanged(object sender InputLanguageChangedEventArgs e)    {    //throw new Exception( The method or operation is not implemented );    for( int i= ;i<boBox Items Count;i++)    {    if (InputLanguage CurrentInputLanguage LayoutName == boBox Items[i] ToString())    {    boBox SelectedIndex = i;    }       }    }       private void boBox _SelectedIndexChanged(object sender EventArgs e)    {    string strTemp = boBox Items[boBox SelectedIndex] ToString();    InputLanguageCollection collects = InputLanguage InstalledInputLanguages;    for (int i = ; i < collects Count; i++)    {    if (collects[i] LayoutName == strTemp)    InputLanguage CurrentInputLanguage = collects[i];    }       }       private void Form _Load(object sender EventArgs e)    {    InputLanguageCollection collects = InputLanguage InstalledInputLanguages;    for (int i = ; i < collects Count; i++)    {    boBox Items Add(collects[i] LayoutName);    }    boBox SelectedIndex = collects IndexOf(InputLanguage CurrentInputLanguage);    }       private void button _Click(object sender EventArgs e)    {    this textBox Focus();    IntPtr hwndInput = ImmGetContext(this Handle);    IntPtr dw = IntPtr Zero;    IntPtr dw = IntPtr Zero;    bool isSuccess = ImmGetConversionStatus(hwndInput ref dw ref dw );    if (isSuccess)    {    int intTemp = dw ToInt () & IME_CMODE_SOFTKBD;    if (intTemp > )    dw = (IntPtr)(dw ToInt () ^ IME_CMODE_SOFTKBD);    else    dw = (IntPtr)(dw ToInt () IME_CMODE_SOFTKBD);    }    isSuccess = ImmSetConversionStatus(hwndInput dw dw );    ImmReleaseContext(this Handle hwndInput);    }       public const int IME_CMODE_SOFTKBD = x ;       [DllImport( imm dll EntryPoint = ImmGetContext )]    public static extern IntPtr ImmGetContext(    IntPtr hwnd    );    [DllImport( imm dll EntryPoint = ImmGetConversionStatus )]    public static extern bool ImmGetConversionStatus(    IntPtr himc    ref IntPtr lpdw    ref IntPtr lpdw    );    [DllImport( imm dll EntryPoint = ImmSetConversionStatus )]    public static extern bool ImmSetConversionStatus(    IntPtr himc    IntPtr dw    IntPtr dw    );       [DllImport( imm dll EntryPoint = ImmReleaseContext )]    public static extern int ImmReleaseContext(    IntPtr hwnd    IntPtr himc    );       }   }      ==============================   代码结束   另外 也可以直接执行OSK而直接打开虚拟键盘 不过这个和软键盘是不一样的   现在反钓鱼的软件越来越多了 祝大家共同进步      谢谢大家的支持 昨天晚上发的 到现在已经有好几个人加我问我了 为了方便大家 我把源程序一并也发在附件里 以供大家下载参考      点击下载 lishixinzhi/Article/program/net/201311/11474  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码