虚拟键盘
//调用系统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位值。
返回值:该函数无返回值。

浙公网安备 33010602011771号