В моем приложении c # .Net я пытался получить выбранный текст в текущем окне. (Обратите внимание, что это может быть любое окно, открытое в окнах, например, word или safari).
Я могу восстановить дескриптор текущего фокусированного элемента управления. (Используя пару вызовов взаимодействия для user32.dll и kernel32.dll).
Однако я не смог последовательно вернуть выбранный текст.
Я пытался использовать SENDMESSAGE и GET_TEXT. Однако, похоже, это работает только для некоторых приложений (работает для простых приложений, таких как WordPad, не работает для более сложных приложений, таких как Firefox или Word).
Я пытался использовать SENDMESSAGE и WM_COPY. Однако, опять же, похоже, что это работает только на некоторых элементах управления. (Я думаю, что WM_COPY вызовет то же поведение, что и нажатие CTRL-C вручную, но это не так).
Я пытался использовать SENDMESSAGE и WM_KEYUP + WM_KEYDOWN, чтобы вручную стимулировать команду копирования. Но это тоже не всегда работает. (Возможно, из-за совпадения с действующей горячей клавишей, нажимаемой пользователем для вызова моих приложений).
Есть какие-нибудь идеи о том, чтобы постоянно получать выбранный текст? (на любом приложении).