powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как фоксом получить ПОЛНОЕ содержимое буфера обмена?
8 сообщений из 8, страница 1 из 1
Как фоксом получить ПОЛНОЕ содержимое буфера обмена?
    #36958493
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользую VFP7 (роднее, чем 9-ка, хоть она тож в наличии имеется).
Проблема в следующем. Необходимо периодически распихивать содержимое контроллов "чужих" экранных форм (с внутренними гиперссылками) по полям 5-колоночной dbf-таблицы. Поскольку формы генерятся закрытым экзешником, нет возможности добыть содержимое нужных контроллов, кроме как последовательно выделяя и копируя содержимое каждого контролла через буфер обмена с последующей вставкой в соответствующие поля dbf-ника. Решил сей процесс автоматизировать.
Через стандартную виндовскую программу просмотра буфера обмена создал файл (123.clp) и подсмотрел его содержимое FAR-ом. При каждом копировании он содержит одни и те же скопированные в буфер данные в нескольких видах: текстовом, rtf-ном и html-ном. Именно html-ная порция буфера как нельзя лучше подходит для моей задачи - поскольку все формы однотипные, то с помощью анализа нужных html-тэгов можно запросто выделить 5 искомых фрагментов данных для последующего распихивания их по полям dbf-таблицы. Но вот беда - как фоксом заполучить содержимое именно html-ной части буфера обмена? Его системная переменная _CLIPTEXT содержит только текстовую составляющую, без html-тэгов. Поиском по форуму пошарил - вроде не было в обсуждениях ничего похожего. Подскажите, пожалуйста, можно ли фоксом ПОЛНОСТЬЮ заполучить содержимое буфера обмена? Чтоб оно имело вид, примерно, как в прилагаемом файле:
...
Рейтинг: 0 / 0
Как фоксом получить ПОЛНОЕ содержимое буфера обмена?
    #36958498
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, и ещё: к сожалению, переменная _CLIPTEXT не содержит фактических URL-ов, "закреплённых" за некоторыми гиперссылочными контроллами формы, а в html-ной части содержимого буфера обмена такие данные содержатся. Можно ли фоксом их выудить оттудова?
...
Рейтинг: 0 / 0
Как фоксом получить ПОЛНОЕ содержимое буфера обмена?
    #36958691
neznajka,
пошарь на forum.foxclub.ru
Там что-то было с использованием WinAPI для определения типа содержимого буфера и работы с ним. Если не найдешь, то спроси местных, подскажут.
...
Рейтинг: 0 / 0
Как фоксом получить ПОЛНОЕ содержимое буфера обмена?
    #36958750
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проходящий.для определения типа содержимого буфера и работы с ним
есть ф-и в библитеке foxtools.fll

EmptyClip( )
OpenClip( )
CloseClip( )
GetClipDat( )
GetClipFmt( )
SetClipDat( )
IsClipFmt( )

http://support.microsoft.com/kb/268478
...
Рейтинг: 0 / 0
Как фоксом получить ПОЛНОЕ содержимое буфера обмена?
    #36958991
прошелмимоесть ф-и в библитеке foxtools.fllО, точно. Уже подзабывать стал.
...
Рейтинг: 0 / 0
Как фоксом получить ПОЛНОЕ содержимое буфера обмена?
    #36960310
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, на forum.foxclub.ru посмотрю обязательно.
А foxtools.fll, по видимому, ничего не даст, ибо как сказано в Foxtools Help - даже самая походящая по названию функция GetClipDat( ) возвращает всего лишь логическое значение. А мне же нужно заполучить символьный (строчный) фрагмент.
Возможно, правда, что я не правильно понял Help, поскольку не имею опыта применения внешних API-функций из-под Фокса.
...
Рейтинг: 0 / 0
Как фоксом получить ПОЛНОЕ содержимое буфера обмена?
    #36960414
neznajka,
вот набрососк на скорую руку:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Set Library To Sys( 2004 )+'foxtools'
If openclip( 0 )
  For i= 1  to  50 
   If isclipfmt(i)
   ?i, getclipfmt(i)
   ?getclipdat( 1 )
   wait
   EndIf
  next
endif
?closeclip()
...
Рейтинг: 0 / 0
Как фоксом получить ПОЛНОЕ содержимое буфера обмена?
    #36960592
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо, Проходящий!
Указали, видимо, правильное направление:
содержимое буфера выдаётся на экран. Правда, только в основных текстовых форматах. Чтобы посмотреть другие пришлось вместо 1 передать в функцию i: ?getclipdat(i)
Желаемого эффекта всё равно пока не достиг, но, думаю, он уже где-то рядом :)
Жаль только, что название формата не выдаётся: getclipfmt(i) каждый раз возвращает почему-то пустую строку. Вот если б как-нибудь подсмотреть, какие форматы буфера на данный момент вообще зарегистрированы в системе! Ладно, буду рыть дальше. Спасибо. :)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как фоксом получить ПОЛНОЕ содержимое буфера обмена?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]