因为要全局判断,我想只能通过API来实现,要知道当前焦点的位置是否处于待输入状态,就像输入法一样,如果当前在待输入状态,所以打字母就有反映,如果不在待输入状态,就不给与响应~!!   简单的解释就是怎么知道当前的焦点在输入框中~~~要全局判断,不只是针对某个textbox,或者某个特定的winform,连web的输入状态也需要知道

解决方案 »

  1.   

    /// <summary> 
            /// 改键方法 
            /// </summary> 
            /// <param name="Vk_num"></param> 
            /// <returns></returns> 
            private int ChangeKey(byte Vk_num) 
            { 
                //获得魔兽程序的句柄 
                IntPtr wcHandle = Win32API.FindWindow(null, "Warcraft III"); 
                //获取魔兽进程的ID 
                IntPtr threadid = Win32API.GetWindowThreadProcessId(wcHandle, IntPtr.Zero); 
                //取得一个句柄,描述指定应用程序的键盘布局,  经比较中文输入法都小于0 
                int num = Win32API.GetKeyboardLayout(threadid); 
                //如果钩子有效并且不是中文输入法 
                if (wcHandle != IntPtr.Zero && num > 0) 
                { 
                    //设置游戏窗口到最前 
                    Win32API.SetForegroundWindow(wcHandle); 
                    if (!KeyBoard_Press) 
                    { 
                        Win32API.keybd_event(Vk_num, 0, 0, 0);//按下小键盘 
                        KeyBoard_Press = true; 
                    } 
                    else 
                    { 
                        Win32API.keybd_event(Vk_num, 0, KEYEVENTF_KEYUP, 0); //松开小键盘 
                        KeyBoard_Press = false; 
                    } 
                    return 1; 
                } 
                return 0; 
            }
      

  2.   

    .net 库里面有专门针对输入法的函数,可以到MSDN上搜搜
      

  3.   

    我想要的东西,就是鼠标点到某个textbox,然后就谈出一个虚拟键盘,这某个textbox不确定,也许是界面上的,也许是网页里的~~
      

  4.   

    如果是winform,可以通过textbox的location来定位显示虚拟键盘。