我需要获得一个聚焦的输入点(插入位置,窗口/控制)。我的应用程序/服务需要检测用户何时开始键入,然后替换使用预定值键入的字符。诀窍是我不知道用户想要键入的位置(我不想将其限制为多个应用程序)。
我认为我知道如何使用以下方式获取/替换文本:
[DllImport("USER32.DLL", CharSet = CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, uint msg, IntPtr wparam, StringBuilder text);
如何获得专注的控件?我如何知道从何处获取文本以及将替换文件发送到何处?
我在C#,WPF中这样做。
谢谢!
答案 0 :(得分:2)
如果您只想模拟键盘活动,可以使用keybd_event
或SendInput
。它们会自动将按键传递给具有焦点的窗口,因此您无需亲自检测它。
答案 1 :(得分:1)
我认为,由于您已将问题标记为WinAPI,因此您尝试拦截来自其他应用程序的按键,如在键盘Hooking中。看看这些链接: