Мне нужно получить точку ввода (положение каретки, окно / элемент управления), которая сфокусирована. Моему приложению / службе необходимо определить, когда пользователь начинает печатать, а затем заменить введенные символы заранее заданными значениями. Хитрость в том, что я не знаю, куда пользователь хочет набирать текст (я не хочу ограничивать это несколькими приложениями).
Я думаю, что я знаю, как получить / заменить текст, используя:
[DllImport("USER32.DLL", CharSet = CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, uint msg, IntPtr wparam, StringBuilder text);
Как мне получить фокусировку? Как узнать откуда взять текст и куда отправить замену?
Я делаю это в C #, WPF.
Спасибо!