:: Visual Foxpro, Foxpro for DOS
FPD 2.6 и буфер обмена Windows
Simple777
Автор

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

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

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

Сообщений: 14100
Откуда: Москва
Дата регистрации: 02.09.2000
А что, системную переменную _ClipText нельзя использовать? Для текста, собственно, и предназначена.
Ratings: 0 negative/0 positive
Re: FPD 2.6 и буфер обмена Windows
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Может быть, в VFP эта переменная и помещает данные в буфер обмена Windows, но в FPD - увы...
Ratings: 0 negative/0 positive
Re: FPD 2.6 и буфер обмена Windows
vk65

Сообщений: 402
Дата регистрации: 08.04.2008
Для передачи из FPD в буфер обмена windows:
На vfp пишется программа из 2 строк:
parameters pFileName
store filetostr(pFileName) to _cliptext
В FPD сбрасываешь что надо в файл и запускаешь эту VFP прогу с параметром - именем файла.
Для передачи в обратную сторону - аналогично.
Ratings: 0 negative/0 positive
Re: FPD 2.6 и буфер обмена Windows
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
А с какой версии VFP эта возможность поддерживается? Например, в VFP 6 это уже есть?
Получается, надо будет создать файл с расширением exe ? Вот даже интересно, какого он будет размера?

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

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

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

Сообщений: 33855
Дата регистрации: 05.11.2006
Такой маленький размер? Неужели это возможно? А как же всякие библиотеки для exe ? В FPD это было бы размером под 1МБ.
Ratings: 0 negative/0 positive
Re: FPD 2.6 и буфер обмена Windows
vk65

Сообщений: 402
Дата регистрации: 08.04.2008
В vfp нет аналога stand-alone ехешника FPD. Библиотеки отдельно. Для vfp9 ~6Mb.
Ratings: 0 negative/0 positive
Re: FPD 2.6 и буфер обмена Windows
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
То есть, надо еще отдельно куда-то закидывать DLL-библиотеки? А это уже не смешно, а скорее грустно...
Ratings: 0 negative/0 positive
Re: FPD 2.6 и буфер обмена Windows
vk65

Сообщений: 402
Дата регистрации: 08.04.2008
А в чем проблема один раз положить на комп библиотеки?
Тем более, очень часто они сами приходят с разнообразными бухгалтерскими/налоговыми программами.
Ratings: 0 negative/0 positive
Re: FPD 2.6 и буфер обмена Windows
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
И куда именно их класть? А если уже есть аналогичные библиотеки, но более старшей версии? Есть ли особенности по работе с библиотеками на разных Windows?

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

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

Сообщений: 402
Дата регистрации: 08.04.2008
Обычно в \Program Files\Common Files\Microsoft Shared\VFP\
Можно и в папку приложения.
Ratings: 0 negative/0 positive
Re: FPD 2.6 и буфер обмена Windows
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Ну, если в папку приложения... И сколько и каких файлов достаточно скопировать для корректной работы такой программки на VFP ?
Ratings: 0 negative/0 positive
Re: FPD 2.6 и буфер обмена Windows
vk65

Сообщений: 402
Дата регистрации: 08.04.2008
Для vfp9 я обычно кладу vfp9r.dll, vfp9renu.dll, msvcr71.dll
Подробнее здесь: forum.foxclub.ru
Ratings: 0 negative/0 positive
Re: FPD 2.6 и буфер обмена Windows
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Вообще-то, это довольно таки накладный метод - копировать библиотеки. Да еще не факт, что это будет работать для всех Windows.

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

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

clip < mytext.txt

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

А вот для WinXP и младше такой команды нет.
Ratings: 0 negative/0 positive
Re: FPD 2.6 и буфер обмена Windows
korsak

Сообщений: 269
Откуда: Киров (Вятка)
Дата регистрации: 27.03.2007
с решениями конечно повеселили
все украдено до нас
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
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Да, утилитка занятная. И работает со всеми Windows, начиная от 98 и заканчивая Win8.

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

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

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

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



Исправлено 1 раз(а). Последнее : Simple777, 09.02.13 21:21
Ratings: 0 negative/0 positive
Re: FPD 2.6 и буфер обмена Windows
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Simple777
В принципе, как сделать такой обмен между FPD и Windows при помощи "тяжелой артиллерии", я представляю.

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

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


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




Исправлено 4 раз(а). Последнее : Crispy, 11.02.13 09:34
Ratings: 0 negative/0 positive
Re: FPD 2.6 и буфер обмена Windows
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
"Ах, 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
Откуда: Киров (Вятка)
Дата регистрации: 27.03.2007
Simple777
Вообще-то, это довольно таки накладный метод - копировать библиотеки. Да еще не факт, что это будет работать для всех
clip < mytext.txt
По этой команде содержимое файла mytext.txt будет занесено в буфер обмена Windows. Видимо, для Win7 и Win8 это тоже будет работать.
А вот для WinXP и младше такой команды нет.
в win7 работает - clip.exe. Унес его в XP, при запуске ошибка - "это не приложение win32"
Ratings: 0 negative/0 positive


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

On-line: 28 (Гостей: 28)

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