|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.06.2008, 00:26 | #1 |
Форумчанин
Регистрация: 22.11.2007
Сообщений: 224
|
Программа должна принимать данные из чужого приложения(текст), затем отправлять туда изменённый текст.
Всё это делается с помощью ctrl+c, ctrl+v. Вот собственно сама функция: Код:
Во второй раз выскакивает ошибка "Cannot open clipboard"(на строке s:=clipboard.AsText;), программа закрывается. Варианты решения? P.S. пробовал clipboard.open...clipboard.close; пробовал функции для работы с буфером без подключения VCL... не помогло PPS только что попробовал sendmessage с wm_copy--тоже не помогло Уточняю: press--процедура, имитирует нажатие клавиш ctrl+переданная(press('C')--нажимает ctrl+c) Именно из-за этой строки и начинает глючить(если закоментить строку номер 15(press('C')), то всё начинает работать без проблем) Есть какие-либо варианты решения это проблемы? Последний раз редактировалось Stilet; 21.05.2009 в 11:19. |
23.06.2008, 22:48 | #2 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
NikLik, ну вот прочитайте сами что Вы написали:
Цитата:
|
|
23.06.2008, 22:54 | #3 |
Форумчанин
Регистрация: 22.11.2007
Сообщений: 224
|
проблема всё ещё остаётся, ибо если убрать эту строку-- теряется смысл программы, заменить её подобными(например, нажатие правой клавиши мыши--потом выбрать пункт "копировать")--таже самая ситуация.
А как ещё можно обмениваться данными? С совершенно сторонними программами? |
23.06.2008, 23:18 | #4 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
NikLik, ещё раз - что и как именно делает процедура press никто, кроме Вас в точности не знает, у какого окна при всём этом фокус - можно только догадываться, хотя и есть подозрение, что это всё время одно и то же окно, зачем именно выбран обмен через clipboard - непонятно, меняться текстом между окнами, в том числе и не понимающими ^C и ^V, можно с успехом через WM_GETTEXT/WM_SETTEXT. Одни вопросы.
|
24.06.2008, 00:18 | #5 |
Форумчанин
Регистрация: 22.11.2007
Сообщений: 224
|
Возьмём такой пример.
Я набираю что-то в аське, затем жму ctrl+e, моя программа обрабатывает это событие wm_gettext ничего не дал(пробовал передавать и getforegroundwindow, и windows.getfocus) Варианты? |
24.06.2008, 00:36 | #6 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Цитата:
http://programmersforum.ru/showpost....7&postcount=16 |
|
24.06.2008, 00:59 | #7 |
Форумчанин
Регистрация: 22.11.2007
Сообщений: 224
|
Большое спасибо!
Первая тема--помогла. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как очистить буфер обмена? | StasSv | Microsoft Office Excel | 2 | 11.08.2008 17:38 |
работа с буфером данных | alexs2141 | Общие вопросы C/C++ | 5 | 06.06.2008 12:45 |
Скопировать в буфер обмена | Dj_smart | JavaScript, Ajax | 8 | 15.05.2008 19:16 |
буффер обмена | experts91 | Win Api | 2 | 07.10.2007 15:47 |
Перехват Буффера обмена | fediko | Win Api | 2 | 02.04.2007 21:52 |