虚拟键盘

//调用系统DLL 

[DllImport("user32.dll")]
public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr PostMessage(IntPtr hwnd, int msg, int wparam, int lparam);

//中英转换**      

private void imageButton26_Click(object sender, System.EventArgs e)
        {
            if(usOrChFlag==0) //中文
            {
                imageButton26.Text="英文";
                usOrChFlag=1;
                InputLanguage.CurrentInputLanguage=InputLanguage.DefaultInputLanguage;
            }
            else  //英文
            {
                imageButton26.Text="中文";
                usOrChFlag=0;
                if(InputLanguage.DefaultInputLanguage.LayoutName.IndexOf("Keyboard")==-1 &&      InputLanguage.DefaultInputLanguage.Culture.Name.Equals("zh-CN"))
                {
                    InputLanguage.CurrentInputLanguage=InputLanguage.DefaultInputLanguage;
                }
                else
                {
                    foreach(InputLanguage lang in InputLanguage.InstalledInputLanguages)
                    {
                        if(lang.Culture.Name.Equals("zh-CN") && lang.LayoutName.IndexOf("Keyboard")==-1)
                        {
                            InputLanguage.CurrentInputLanguage=lang;
                            break;
                        }
                    }
                }
            }
        }

//模拟键盘按键
    keybd_event(Convert.ToByte("65"), 0, 0, 0);
    keybd_event(Convert.ToByte("65"), 0, 2, 0);
  函数原型;VOID   keybd_event(BYTE   bVk,BYTE   bScan,DWORD   dwFlags,DWORD   dwExtralnfo);   
    
          参数:   
    
          bVk:定义一个虚据拟键码。键码值必须在1~254之间。   
    
          bScan:定义该键的硬件扫描码。   
    
          dwFlags:定义函数操作的名个方面的一个标志位集。应用程序可使用如下一些预定义常数的组合设置标志位。   
    
          KEYEVENTF_EXETENDEDKEY:若指定该值,则扫描码前一个值为OXEO(224)的前缀字节。DEYEVENTF_KEYUP:若指定 该值,该键将被释放;若未指定该值,该键交被接下。dwExtralnfo:定义与击键相关的附加的32位值。   
    
          返回值:该函数无返回值。

转载于:http://115599727.blog.sohu.com/140507271.html

posted @ 2013-07-09 17:54  chenaran  阅读(130)  评论(0)    收藏  举报