如何获取当前是否处于输入状态

viki117 2010-09-02 11:34:24
因为要全局判断,我想只能通过API来实现,要知道当前焦点的位置是否处于待输入状态,就像输入法一样,如果当前在待输入状态,所以打字母就有反映,如果不在待输入状态,就不给与响应~!!

简单的解释就是怎么知道当前的焦点在输入框中~~~要全局判断,不只是针对某个textbox,或者某个特定的winform,连web的输入状态也需要知道。。。
...全文
332 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
viki117 2010-09-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 libinguest 的回复:]
C# code
/// <summary>
/// 改键方法
/// </summary>
/// <param name="Vk_num"></param>
/// <returns></returns>
private int ChangeKey(byte Vk_num)
……
[/Quote]
我还不是很明白,
醒子宇 2010-09-02
  • 打赏
  • 举报
回复
up·····
qiuxin425 2010-09-02
  • 打赏
  • 举报
回复
mark
苍穹无痕 2010-09-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 libinguest 的回复:]
C# code
/// <summary>
/// 改键方法
/// </summary>
/// <param name="Vk_num"></param>
/// <returns></returns>
private int ChangeKey(byte Vk_num)
……
[/Quote]

稍微改一下就可以了。
lampson123 2010-09-02
  • 打赏
  • 举报
回复
.net 库里面有专门针对输入法的函数,可以到MSDN上搜搜
viki117 2010-09-02
  • 打赏
  • 举报
回复
顶,作的应该知道了
Love_Air523824 2010-09-02
  • 打赏
  • 举报
回复
顶你 等高手
风之影子 2010-09-02
  • 打赏
  • 举报
回复
/// <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;
}
angelo1011 2010-09-02
  • 打赏
  • 举报
回复
如果是winform,可以通过textbox的location来定位显示虚拟键盘。
viki117 2010-09-02
  • 打赏
  • 举报
回复
我想要的东西,就是鼠标点到某个textbox,然后就谈出一个虚拟键盘,这某个textbox不确定,也许是界面上的,也许是网页里的~~

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧