知识大全 VS2005中C#用代码打开软键盘

Posted

篇首语:我允许别人比我强,但我不允许我没有别人努力。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 VS2005中C#用代码打开软键盘相关的知识,希望对你有一定的参考价值。

VS2005中C#用代码打开软键盘  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

     前段时间研究过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而直接打开虚拟键盘 不过这个和软键盘是不一样的   现在反钓鱼的软件越来越多了 祝大家共同进步      谢谢大家的支持 昨天晚上发的 到现在已经有好几个人加我问我了 为了方便大家 我把源程序一并也发在附件里 以供大家下载参考      点击下载 cha138/Article/program/net/201311/11474

相关参考

知识大全 用VS2005开发XAML程序

用VS2005开发XAML程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!如果我们使用Visua

知识大全 用钩子(hook)实现C#的屏幕键盘效果

用钩子(hook)实现C#的屏幕键盘效果  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  要实现一

知识大全 用VS2010在32位电脑上开发一个上位机软体复制到其他电脑上时打开出现问题,如图所示,请问如何解决

用VS2010在32位电脑上开发一个上位机软体复制到其他电脑上时打开出现问题,如图所示,请问如何解决?  以下文字资料是由(本站网www.cha138.com)小编为大家

知识大全 用C#去除代码的SourceSafe管理(2)

用C#去除代码的SourceSafe管理(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  三

知识大全 用C#去除代码的SourceSafe管理(1)

用C#去除代码的SourceSafe管理(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  经

知识大全 一个用C#过滤HTML代码的函数

一个用C#过滤HTML代码的函数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!publicstri

知识大全 vs.net中web services入门

  Visual中的XMLWebservices入门  目录  简介用托管代码编写的XMLWebservices使用VisualStudio创建XMLWebservices使用VisualStudio

知识大全 用Visual C++ 2005编写更快的代码

用VisualC++2005编写更快的代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对于C

知识大全 用C#代码编写的SN快速输入工具

用C#代码编写的SN快速输入工具  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一般软件都要输入

知识大全 VS2005 系列控件演示之 表格

VS2005系列控件演示之表格  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!