Мне нужно получить точку ввода (позиция каретки, окно/управление), которая сфокусирована. Мое приложение/служба необходимо определить, когда пользователь начнет вводить текст, а затем заменить символы, которые были напечатаны с заранее определенными значениями. Хитрость в том, что я не знаю, где пользователь хочет напечатать (я не хочу ограничивать это несколькими приложениями).Получить введенные пользователем символы (WINAPI, user32.dll)
Я думаю, что я знаю, как получить/заменить текст с помощью:
[DllImport("USER32.DLL", CharSet = CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, uint msg, IntPtr wparam, StringBuilder text);
Как получить контроль, который ориентирован? Как узнать, откуда взять текст и куда отправить замену?
Я делаю это в C#, WPF.
Спасибо!
Как вы получаете нажатия клавиш? Если вы используете обработчик событий, свойство RoutedEventArgs имеет свойство «OriginalSource». Это свойство получает исходный источник отчетов, определенный чистым тестированием, перед любой возможной корректировкой исходного кода родительским классом. Это укажет, какой элемент управления вводил конечный пользователь. Затем вы запросите этот элемент управления для его свойства Text. –