Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

           Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
           И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - https://clck.ru/fCqwP

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2008, 19:57   #1
soufee
 
Регистрация: 09.07.2008
Сообщений: 8
По умолчанию Буфер обмена за пределами нашего приложения

Здравствуйте, уважаемые участники клуба.
Передо мной стоит задача создания словаря (наподобие Лингво).
После того как я выделяю какое либо слово в любом приложении, будь то Word, блокнот, Браузер и т.п., и по нажатии быстрых клавиш, нужно чтобы в открывающейся программе в Edit вносилось выделенное слово.
Очень надеюсь на вашу помощь.
soufee вне форума Ответить с цитированием
Старый 09.07.2008, 20:38   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Может dll и установка глобальных клавиш ? Ну а для буфера и модуль clipbrd кажется сойдет ) Ну а если сразу после копирования то хуки на буфер обмена в сети описаны... ищем ))
BOBAH13 вне форума Ответить с цитированием
Старый 09.07.2008, 20:40   #3
soufee
 
Регистрация: 09.07.2008
Сообщений: 8
По умолчанию

С быстрыми клавишами проблем нет. У меня прога висит в трее, при нажатии комбинации клавиш вылазиет. Надо чтобы при неактивном окне он в этот самый Clipboard сначала взял строчку, потом окно активизировал и вставил в Едит
soufee вне форума Ответить с цитированием
Старый 09.07.2008, 21:45   #4
Ring0Sn
Форумчанин
 
Аватар для Ring0Sn
 
Регистрация: 06.09.2007
Сообщений: 239
По умолчанию

глобальный хук
Ring0Sn вне форума Ответить с цитированием
Старый 09.07.2008, 21:57   #5
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от soufee Посмотреть сообщение
С быстрыми клавишами проблем нет. У меня прога висит в трее, при нажатии комбинации клавиш вылазиет. Надо чтобы при неактивном окне он в этот самый Clipboard сначала взял строчку, потом окно активизировал и вставил в Едит
Лингво берёт текст уже из буфера, куда текст попадает по ^C или ^Ins.
B_N вне форума Ответить с цитированием
Старый 09.07.2008, 22:24   #6
soufee
 
Регистрация: 09.07.2008
Сообщений: 8
По умолчанию

Ring0Sn, B_N можете поподробней объяснить ?
soufee вне форума Ответить с цитированием
Старый 09.07.2008, 22:32   #7
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

soufee, а что именно обяснить? Я пока не вижу у Вас ни одного вопроса. О хуках на форуме написано множество тем, поищите их по SetWindowsHookEx, по буферу обмена тоже есть информация - тоже поиск по OpenClipboard
B_N вне форума Ответить с цитированием
Старый 10.07.2008, 13:12   #8
soufee
 
Регистрация: 09.07.2008
Сообщений: 8
По умолчанию

Объясните пожалуйста как с помощью глобального хука забрать выделенный фрагмент текста в буфер обмена. Нужно при нажатии ctrl+f8 текст забирался в буфер обмена после чего активизировалось окно.
soufee вне форума Ответить с цитированием
Старый 10.07.2008, 13:30   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,806
По умолчанию

Цитата:
как с помощью глобального хука забрать выделенный фрагмент текста в буфер обмена
Глобальный хук тут я бы не применял. Луче как в прагме это сделано - по клику на иконке прагма открывает клипбоард активного окна, получает из него текст.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.07.2008, 14:59   #10
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,691
По умолчанию

Код:
type
  procedure WMDrawClipboard(var Msg: TWMDrawClipboard); message WM_DRAWCLIPBOARD;
...
procedure TForm1.WMDrawClipboard(var Msg: TWMDrawClipboard);
var
  P: PChar;
  H: THandle;
begin
  if Clipboard.HasFormat(CF_TEXT) then
  begin
    H := Clipboard.GetAsHandle(CF_TEXT);
    P := GlobalLock(H);
    Edit1.SetTextBuf(P);
    GlobalUnlock(H)
  end
end;
По идеи сообщение надо будет дальше послать, но и так вроде работает
eoln вне форума Ответить с цитированием
Ответ

           Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
           Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как очистить буфер обмена? StasSv Microsoft Office Excel 2 11.08.2008 17:38
Как скопировать текст в буфер обмена с одного edit-a и вставить в другой SeRhy Общие вопросы Delphi 2 26.07.2008 23:02
Скопировать в буфер обмена Dj_smart JavaScript, Ajax 8 15.05.2008 19:16
обновление в блоге - Programmersforum.ru toolbar – тулбар для нашего клуба Pblog Обсуждение статей 0 13.12.2007 20:20
Копирование структуры в буфер обмена bill Общие вопросы Delphi 14 20.11.2007 17:22