for flooders
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум
   Л и с о в о д ы   в с е х   с т р а н,  о б ъ е д и н я й т е с ь !!!  

Список Форумов  :: Visual Foxpro, Foxpro for DOS
   :: Помощь сайту :: 

FPD 2.6 и буфер обмена Windows
Simple777
Автор

Сообщений: 20385
Дата: 08.02.13 17:52:27ОтветитьЦитировать
В принципе, как сделать такой обмен между FPD и Windows при помощи "тяжелой артиллерии", я представляю.
В буфер обмена Windows данные можно поместить хоть через вызов Word с заданным макросом автозагрузки, который будет выделять содержимое передаваемого файла, копировать текст в буфер обмена, и после этого (макрос) закроет Word.
В обратную сторону (из Word в FPD будет дело похлопотнее) опять же через макрос можно загрузить Word, вставить данные из буфера обмена в активное окно, сохранить файл с определенным именем в нужном формате, а потом в FPD обработать сформированный файл (да хоть добавить содержимое файла в буфер обмена FPD).

Но это слишком длинный по времени исполнения путь. А нет ли какого-либо другого, более простого метода для обмена между Windows и FPD? Может быть, есть какая-то утилитка, которая поможет выполнить такой обмен данными в обе стороны? Речь, в общем-то, идет о текстовых файлах. Выделение же при помощи мыши текста из FPD и копирование таким способом в буфер обмена Windows тоже не прельщает. Хотелось бы такой обмен делать в пакетном режиме.

На вопрос, зачем мне такое понадобилось, пока не готов ответить, но раз интересуюсь, значит, для чего-то надо.
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
Владимир Максимов

Сообщений: 13821
Откуда: Москва
Дата: 08.02.13 18:16:12ОтветитьЦитировать
А что, системную переменную _ClipText нельзя использовать? Для текста, собственно, и предназначена.
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
Simple777
Автор

Сообщений: 20385
Дата: 08.02.13 18:33:57ОтветитьЦитировать
Может быть, в VFP эта переменная и помещает данные в буфер обмена Windows, но в FPD - увы...
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
vk65

Сообщений: 370
Дата: 08.02.13 20:19:29ОтветитьЦитировать
Для передачи из FPD в буфер обмена windows:
На vfp пишется программа из 2 строк:
  
  parameters pFileName  
  store filetostr(pFileName) to _cliptext
В FPD сбрасываешь что надо в файл и запускаешь эту VFP прогу с параметром - именем файла.
Для передачи в обратную сторону - аналогично.
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
Simple777
Автор

Сообщений: 20385
Дата: 08.02.13 20:29:03ОтветитьЦитировать
А с какой версии VFP эта возможность поддерживается? Например, в VFP 6 это уже есть?
Получается, надо будет создать файл с расширением exe ? Вот даже интересно, какого он будет размера?

И насчет "в обратную сторону". Наверное, надо передавать тогда 2 параметра: имя файла и в какую сторону копировать?
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
vk65

Сообщений: 370
Дата: 08.02.13 20:39:44ОтветитьЦитировать
Simple777
А с какой версии VFP эта возможность поддерживается? Например, в VFP 6 это уже есть?
Имхо, да.
Simple777
Получается, надо будет создать файл с расширением exe ? Вот даже интересно, какого он будет размера?
24270 байт (vfp9)

Simple777
И насчет "в обратную сторону". Наверное, надо передавать тогда 2 параметра: имя файла и в какую сторону копировать?
Да. Обратно - strtofile(_cliptext, pFileName)
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
Simple777
Автор

Сообщений: 20385
Дата: 08.02.13 20:47:30ОтветитьЦитировать
Такой маленький размер? Неужели это возможно? А как же всякие библиотеки для exe ? В FPD это было бы размером под 1МБ.
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
vk65

Сообщений: 370
Дата: 08.02.13 20:54:07ОтветитьЦитировать
В vfp нет аналога stand-alone ехешника FPD. Библиотеки отдельно. Для vfp9 ~6Mb.
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
Simple777
Автор

Сообщений: 20385
Дата: 08.02.13 20:57:20ОтветитьЦитировать
То есть, надо еще отдельно куда-то закидывать DLL-библиотеки? А это уже не смешно, а скорее грустно...
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
vk65

Сообщений: 370
Дата: 08.02.13 21:08:50ОтветитьЦитировать
А в чем проблема один раз положить на комп библиотеки?
Тем более, очень часто они сами приходят с разнообразными бухгалтерскими/налоговыми программами.
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
Simple777
Автор

Сообщений: 20385
Дата: 08.02.13 21:12:05ОтветитьЦитировать
И куда именно их класть? А если уже есть аналогичные библиотеки, но более старшей версии? Есть ли особенности по работе с библиотеками на разных Windows?

Кагбы появляются всякие вопросы...

Конечно, если библиотеки достаточно положить в папку приложения, тогда другое дело.
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
vk65

Сообщений: 370
Дата: 08.02.13 21:16:06ОтветитьЦитировать
Обычно в \Program Files\Common Files\Microsoft Shared\VFP\
Можно и в папку приложения.
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
Simple777
Автор

Сообщений: 20385
Дата: 08.02.13 21:35:28ОтветитьЦитировать
Ну, если в папку приложения... И сколько и каких файлов достаточно скопировать для корректной работы такой программки на VFP ?
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
vk65

Сообщений: 370
Дата: 08.02.13 22:06:58ОтветитьЦитировать
Для vfp9 я обычно кладу vfp9r.dll, vfp9renu.dll, msvcr71.dll
Подробнее здесь: forum.foxclub.ru
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
Simple777
Автор

Сообщений: 20385
Дата: 09.02.13 12:50:25ОтветитьЦитировать
Вообще-то, это довольно таки накладный метод - копировать библиотеки. Да еще не факт, что это будет работать для всех Windows.

Я почитал еще в Инете про команды Windows.

В Vista все решается одной командой. Например:

clip < mytext.txt

По этой команде содержимое файла mytext.txt будет занесено в буфер обмена Windows. Видимо, для Win7 и Win8 это тоже будет работать.

А вот для WinXP и младше такой команды нет.
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
korsak

Сообщений: 269
Откуда: Киров (Вятка)
Дата: 09.02.13 14:05:32ОтветитьЦитировать
с решениями конечно повеселили
все украдено до нас
www.nirsoft.net
Цитата:
clipboard [Action] [Parameter]
Позволяет Вам устанавливать значение в буфере обмена и очищать буфер обмена.
[Action] может содержать одно из следующих значений:

set - устанавливает указанный текст в буфер обмена.
readfile - устанавливает содержание указанного текстового файла в буфер обмена.
clear - очищают буфер обмена.
writefile - записывает содержание буфера обмена в файл. (только текст)
addfile - добавляет содержание буфера обмена к файлу. (только текст)
Примеры:
clipboard set "123456"
clipboard set ~$folder.desktop$
clipboard set ~$folder.start_menu$
clipboard readfile "c:\temp\info1.txt"
clipboard addfile "c:\temp\clip1.txt"
clipboard clear
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
Simple777
Автор

Сообщений: 20385
Дата: 09.02.13 18:50:45ОтветитьЦитировать
Да, утилитка занятная. И работает со всеми Windows, начиная от 98 и заканчивая Win8.

Однако есть проблемы с кириллицей.

Текст как в 866, так и в 1251 кодовой таблице вставляется из буфера обмена (в Word и Wordpad, например) с кракозябрами.
А, скажем, тот же Far корректно вставляет в буфер обмена текст в обеих кодовых таблицах.

Так что вопросы остаются...

P.S. Почитал в Инете про проблемы с кириллицей в буфере обмена. Предлагают редактировать системный реестр и т.п. Но почему же Far может корректно копировать, а утилита nircmd не может?
Причем кодовую страницу 866 нельзя занести корректно в буфер обмена никаким способом, а вот при копировании текста в кодовой таблице 1251 можно в буфере обмена выбрать "Вид" - "Текст", и тогда скопированный текст отображается корректно.



Исправлено: Simple777, 09.02.13 19:21
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
Crispy

Сообщений: 13490
Дата: 11.02.13 07:29:03ОтветитьЦитировать
Simple777
В принципе, как сделать такой обмен между FPD и Windows при помощи "тяжелой артиллерии", я представляю.

Да тут же вроде все уже украдено сделано до нас. Как и во многом другом.
В смысле в Windows с древнейших еще времен (в 7 разве что не доводилось еще проверять) существует такая собственная мелкософтная утилитка, как clipbrd.exe в c:\WINDOWS\System32\, которая позволяет сохранять содержимое буфера обмена в файлы с расширением CLP. Которые в дальнейшем могут точно так же ею же и загружаться в буфер. Про устройство файлов думаю без проблем где-то и почитать, хотя даже если просто открыть в блокноте парочку сохраненных этой утилитой - на мой взгляд структура их вполне прозрачна. Что позволяет при желании скидывать в подобные файлы данные и откуда-то снаружи. Хоть с твоего любимого FPD. Аналогично и наоборот. И не надо никаких вордов привлекать и прочие артиллеристские и ракетные штуковины. Кстати эта утилита (как и естественно было бы ожидать) позволяет подгружать в буфер не только текст, но и скажем графические файлы и все прочее, что только способен содержать буфер.

Кроме того, попробовал сейчас скопировать 866-текст - и он вполне нормально у меня отобразился в окошке этой открытой рядом утилитки.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)




Исправлено: Crispy, 11.02.13 07:34
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
Simple777
Автор

Сообщений: 20385
Дата: 11.02.13 19:57:44ОтветитьЦитировать
"Ах, Crispy, Crispy няня, няня, я тоскую,
Мне тошно, милая, моя!..."

Ну кагбы в теории в общем плане все это и несложно будто бы - не сложнее, чем эмулятор FPD из среды VFP.

Однакож с утилиткой clipbrd.exe я был знаком. И то, что она может сохранять и открывать файлы с расширением clp. Но как-будто у утилиты нет пакетного режима, а руками я сам могу хоть что поместить в буфер Windows. А вот как это сделать из среды FPD, например?

И кодовая страница 866 при помощи Far очень даже запросто корректно размещается в буфере обмена. А вот ежели через утилитку, упоминаемую korsak, чегой-то никак.

Ну, а насчет любви к FPD - так это как любофф к социалистическому выбору или к советским газетам (- Никогда не читайте перед обедом советских газет. - Так ведь других нету. )
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
korsak

Сообщений: 269
Откуда: Киров (Вятка)
Дата: 12.02.13 05:35:06ОтветитьЦитировать
Simple777
Вообще-то, это довольно таки накладный метод - копировать библиотеки. Да еще не факт, что это будет работать для всех
clip < mytext.txt
По этой команде содержимое файла mytext.txt будет занесено в буфер обмена Windows. Видимо, для Win7 и Win8 это тоже будет работать.
А вот для WinXP и младше такой команды нет.
в win7 работает - clip.exe. Унес его в XP, при запуске ошибка - "это не приложение win32"
Ratings: 0 negative/0 positive



Извините, только зарегистрированные пользователи могут писать в этом форуме.

On-line: 53 Божья_коровка  and Guests: 52


© 2000-2018 Fox Club 
Яндекс.Метрика