Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

доступ из одного приложения к выделенному тексту в другом приложении

1.6K
28 августа 2001 года
bobsky
2 / / 20.08.2000
Здравствуйте! Вот такая у меня проблемка:
есть мое приложение, постоянно находящееся в памяти. Если в любом окне
любого приложения, позволяющем вводить и редактировать текст, выделить часть
текста/весь текст и нажать определенный HotKey, мое приложение должно
произвести над выделенным текстом определенные операции и поместить вместо
первоначального. И вот - как получить этот выделенный текст из другого
приложения и потом поместить обратно с заменой выделенного?
1.1K
28 августа 2001 года
AleX NeWMaN
32 / / 20.09.2000
Все довольно таки просто. Вот порядок действий:
1. Определить HWND окна в котором находиться текст. Для этого надо использовать функцию GetForegroundWindow
2. Получить текст из этого окна
3. Произвести его обработку
4. Поместить результат обратно в окно

Получать текст и возвращать его обратно с помощью SendMessage.
Если все содержимое окна - то WM_GETTEXT и WM_SETTEXT, если же нужен выделенный текст, то EM_GETSEL и EM_SETSEL.

Можно так же использовать вариант с хуком клавиатуры, если вышеописанный способ не пройдет
1.6K
31 августа 2001 года
bobsky
2 / / 20.08.2000
Текст я получил так: мое приложение регистрирует хот-кей, потом я набираю текст, допустим в аське, выделяю, давлю хот-кей. В моем приложении делается keybd_event на Ctrl+Ins. В буфер выделенное копируется.
Но! Потом невозможно текст вставить! Ни SendMessage (<foreground window handle>,WM_PASTE,0,0), ни keybd_event на Shift+Ins не работают! В чем грабли?
1.1K
31 августа 2001 года
AleX NeWMaN
32 / / 20.09.2000
Тоже вариант, но как-то некрасиво использовать для своих целей буфер обмена. А вдруг у пользователя там важные данные, а ты их гробишь. Поэтому лучше изменить логику программы, если можно. Т.е. пользователь копирует данные в буфер, жмет хот кей, а затем вставляет модифицированный текст в нужное ему месту. И пользователю все понятно, да и тебе легко будет реализовать
Аноним
<TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD>Quote:<HR></TD></TR><TR><TD><FONT SIZE=-1><BLOCKQUOTE>
On 2001-08-31 15:57, AleX NeWMaN wrote:
А вдруг у пользователя там важные данные, а ты их гробишь</BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE>

Это не проблема, состояние буфера всегда можно сохранить... Да и такой вариант, как ты предложил, довольно геморроен для юзера...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог