知识大全 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程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!如果我们使用Visua
用钩子(hook)实现C#的屏幕键盘效果 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 要实现一
知识大全 用VS2010在32位电脑上开发一个上位机软体复制到其他电脑上时打开出现问题,如图所示,请问如何解决
用VS2010在32位电脑上开发一个上位机软体复制到其他电脑上时打开出现问题,如图所示,请问如何解决? 以下文字资料是由(本站网www.cha138.com)小编为大家
用C#去除代码的SourceSafe管理(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 三
用C#去除代码的SourceSafe管理(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 经
一个用C#过滤HTML代码的函数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!publicstri
Visual中的XMLWebservices入门 目录 简介用托管代码编写的XMLWebservices使用VisualStudio创建XMLWebservices使用VisualStudio
用VisualC++2005编写更快的代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 对于C
用C#代码编写的SN快速输入工具 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一般软件都要输入
VS2005系列控件演示之表格 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!