获取用户输入的输入字符(WINAPI,user32.dll)

时间:2011-12-31 02:21:18

标签: c# wpf winapi user32

我需要获得一个聚焦的输入点(插入位置,窗口/控制)。我的应用程序/服务需要检测用户何时开始键入,然后替换使用预定值键入的字符。诀窍是我不知道用户想要键入的位置(我不想将其限制为多个应用程序)。

我认为我知道如何使用以下方式获取/替换文本:

[DllImport("USER32.DLL", CharSet = CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, uint msg, IntPtr wparam, StringBuilder text);

如何获得专注的控件?我如何知道从何处获取文本以及将替换文件发送到何处?

我在C#,WPF中这样做。

谢谢!

2 个答案:

答案 0 :(得分:2)

如果您只想模拟键盘活动,可以使用keybd_eventSendInput。它们会自动将按键传递给具有焦点的窗口,因此您无需亲自检测它。

答案 1 :(得分:1)

我认为,由于您已将问题标记为WinAPI,因此您尝试拦截来自其他应用程序的按键,如在键盘Hooking中。看看这些链接: