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

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

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

Сообщений: 32168
Дата: 28.05.18 13:10:53ОтветитьЦитировать
Не в курсе, не пользуюсь. Но "теоретических" препятствий к этому нет. Это ж по сути обычная Win-программа. Ты и в VFP вполне можешь взять что-нить из текстбокса и через Wscript или ShellExecute "исполнить как команду в ОС". Другое дело, насколько это нужно и насколько безопасно... Вот в фоксе практически никогда такой "вольности" (ввод и исполнение произвольных команд/запуск произвольных exe-ников) не реализуют.


------------------
WBR, Igor
Ratings: 0 negative/0 positive

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

Сообщений: 545
Откуда: Солигорск
Дата: 28.05.18 13:18:39ОтветитьЦитировать
Simple777
Сам с DOSBOX не работал, но кто-то говорил, что командная строка Windows из DOSBOX недоступна.

Как вариант, создавать в досовской программе под DosBox'ом файлы-задания с определенным расширением (можно даже менеджер запилить : выполнять или писать в задание), а в Windows обрабатывать эти файлы сканером-планировщиком по факту появления.
Ratings: 0 negative/0 positive

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

Сообщений: 545
Откуда: Солигорск
Дата: 28.05.18 13:31:32ОтветитьЦитировать
Igor Korolyov
Но "теоретических" препятствий к этому нет.

Исходники DosBox открыты. Мож кто и допилит одну команду.
Ratings: 0 negative/0 positive

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

Сообщений: 20385
Дата: 28.05.18 13:56:23ОтветитьЦитировать
Вот кто бы колесо мыши допилил бы для FPD.
Ratings: 0 negative/0 positive

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

Сообщений: 32168
Дата: 28.05.18 16:36:09ОтветитьЦитировать
А как оно там должно работать? Эмулировать стрелку вниз/вверх? Там же нет поддержки конкретно для "прокрутки мышью" как в VFP, например...


------------------
WBR, Igor
Ratings: 0 negative/0 positive

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

Сообщений: 20385
Дата: 28.05.18 20:48:07ОтветитьЦитировать
Да, должно эмулировать стрелку вверх и вниз. По сути надо всего-навсего отловить движение колеса и заслать в буфер клавиатуры scan-коды стрелок вверх или вниз. Ну, вероятно, должна быть и настройка чувствительности - скольким стрелкам будет соответствовать одна прокрутка колеса типа.
Ratings: 0 negative/0 positive

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

Сообщений: 32168
Дата: 28.05.18 23:41:00ОтветитьЦитировать
Да, утилита типа такой.
www.dfzone.be
Не в курсе работает ли она с досбоксом в своём оригинальном виде (т.к. я такового не имею), а с другими приложениями - без некоторой доработки напильником (естественно после декомпиляции) нет. Но допилить (поправить очевидные косяки) в принципе несложно. Хотя IMHO проще таки с нуля переписать под конкретную постановку задачи, чем в VB.NET исходнике колупаться


------------------
WBR, Igor
Ratings: 0 negative/0 positive

Re: FPD 2.6 и буфер обмена Windows
Цезарь

Сообщений: 127
Дата: 30.05.18 15:44:48ОтветитьЦитировать
Simple777
Сам с DOSBOX не работал, но кто-то говорил, что командная строка Windows из DOSBOX недоступна.
Командная строка в DOSBOX, конечно, есть, и унаследованные от DOS команды в ней работают. Но все запускаемые приложения на запрос версии DOS получают "6.22". Для консольных приложений Windows это не подходит. В DOSBOX можно менять версию DOS для отдельных приложений (есть команда setver, как в последних MS DOS), но я как-то сомневаюсь, что подстановка версии 7.0 позволит 32-разрядному приложению работать

Так что если хочется иметь в DOSBOX полноценную командную строку, то надо:
- найти в исходниках DOSBOX место, где разбирается командная строка;
- после выделения из строки имени исполняемого модуля добавить анализ заголовка этого модуля; если модуль окажется не для DOS, то и запускать его вне эмулятора DOS - с передачей ему параметров и приёмом результата;
- скомпилировать написанное и получить свой собственный DOSBOX, а также благодарности от всех, кому он будет полезен

Если же нужен только доступ к буферу обмена Windows - найти в исходниках, где DOSBOX обрабатывает нажатия клавиш (например, перехватывает Shift+Shift), добавить перехват Ctrl+C, Ctrl+V и ещё кучи комбинаций, скомпилировать и т.д.

Как мне кажется, проще сделать по аналогии с программами для печати из DOS на GDI-принтеры. По Ctrl+C DOS-приложение пишет то, что надо поместить в буфер обмена, в файл в определённую папку. Windows-приложение постоянно сканирует эту папку, при обнаружении нового текста вставляет его в буфер обмена. По Ctrl+V DOS-приложение пишет в папку флаг запроса, а Windows-приложение, обнаружив его, сохраняет текстовый буфер обмена в файл; DOS-приложение забирает содержимое. И все довольны, независимо от использования NTVDM или DOSBOX.
Ratings: 0 negative/0 positive

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

Сообщений: 32168
Дата: 31.05.18 12:52:24ОтветитьЦитировать
Ctrl+C вообще-то для DOS имеет особое значение - это сигнал прерывания.


------------------
WBR, Igor
Ratings: 0 negative/0 positive

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

Сообщений: 545
Откуда: Солигорск
Дата: 31.05.18 15:47:48ОтветитьЦитировать
Цезарь
Так что если хочется иметь в DOSBOX полноценную командную строку, то надо:

Предлагаю кому-нибудь поручить специально (да просто любому, да хотя бы тому же Игорю Королеву (все равно ничего не делает , а только в форумах сидит)) и скажем ему потом "спасибо".
Ratings: 0 negative/0 positive

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

Сообщений: 32168
Дата: 31.05.18 17:52:36ОтветитьЦитировать
Боже упаси, даже если бы я и разбирался прилично в си, в архитектуре ДОСа и конкретно в этом эмуляторе, то такие "нехорошие" вещи уж точно не стал бы в него вносить Цель досбокса - возможность запуска ПО (чаще всего игр) написанных 30 лет тому назад. Цели "помочь" СЕЙЧАС писать что-то под дос... Уверен ни один из авторов проекта даже додуматься до такого не смог бы
Ну и да, я категорически против всякого рода insane решений.


------------------
WBR, Igor
Ratings: 0 negative/0 positive

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

Сообщений: 13490
Дата: 04.06.18 11:46:14ОтветитьЦитировать
BOBAN
Цезарь
Так что если хочется иметь в DOSBOX полноценную командную строку, то надо:

Предлагаю кому-нибудь поручить специально (да просто любому, да хотя бы тому же Игорю Королеву (все равно ничего не делает , а только в форумах сидит)) и скажем ему потом "спасибо".

Как говорится: "Все уже украдено до нас".
Есть уже давно такое приложение vDosPlus, как ветка vDos, специально созданного на базе DosBox для коммерческих дос-приложений.
DosBox, напомню, создавался когда-то исключительно для дос-игр. Работу с приложениями в нем никто как бы не гарантировал. Хот она и возможна.
Несколько дней назад, по подсказке товарища Са(-ах какого товарища) , довелось поковыряться с данным vDosPlus, довольно таки любопытная (и удобная) штука оказалась. В итоге после подстройки удалось добиться нормальной работы ряда своих FPD-приложений (которые зачем-то все еще используют параллельно с 1С-кой) теперь уже и под Win7x64. В идеале переписать бы конечно все их на VFP, да как-то уже неохота. Т.к. о том, что их все еще используют, узнал только пару лет назад, думал, раз уж давно как бы "перешли на 1с", то типа и все с ними, ан нет оказывается, что-то в них есть такое до сих пор полезное, чего в 1с невозможно по ряду причин.

Так вот, в данном vDosPlus работает и прокрутка колеса, причем крутая, и взаимодействие с буфером обмена. И еще много других полезных оконных возможностей. Ради понимания чего на всякий случай аккуратно перевел все имеющиеся там руководства. Также некоторые не совсем документированные моменты обнаружил уже путем экспериментов. В общем, однозначно, vDosPlus - разработка на твердую пятерку, на мой взгляд.
Если кому-то еще подобное интересно, в принципе могу как-нибудь изложить все основные моменты, скажем где-нибудь в отдельной теме.
Хотя при желании думаю, там разобраться самому несложно будет и почти любому.


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




Исправлено: Crispy, 04.06.18 11:47
Ratings: 0 negative/1 positive

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

Сообщений: 82
Дата: 04.06.18 13:17:38ОтветитьЦитировать
Crispy
Если кому-то еще подобное интересно, в принципе могу как-нибудь изложить все основные моменты
Дружище, безусловно!
Crispy
Хотя при желании думаю, там разобраться самому несложно
И это понятно. Но если уже есть какие-то готовые комментарии «для себя», то другой чел (типа я), почитав их сможет понять, стОит ли тратить на разборки время. В первую очередь интересует вопрос о параллельной работе:
1) работает ли одновременно с VFP с одними dbf-ками?
2) что-нибудь типа "net use" работает?
3) "!cmd/c start qq.rtf" откроет ворд?
Просто если вдруг найдётся более лёгкое рабочее решение, чем VirtualBox+WinXP/7, это здОрово. Ну и да, это другая тема.

upd: я эти вопросы задал не с целью попросить полный расклад, а в том смысле, что если в процессе ковыряния на это обращал внимание, то просто да/нет/фигзнат.



Исправлено: andrewk, 04.06.18 13:31
Ratings: 0 negative/0 positive

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

Сообщений: 13490
Дата: 04.06.18 13:38:08ОтветитьЦитировать
andrewk
Crispy
Если кому-то еще подобное интересно, в принципе могу как-нибудь изложить все основные моменты
Дружище, безусловно!
Crispy
Хотя при желании думаю, там разобраться самому несложно
И это понятно. Но если уже есть какие-то готовые комментарии «для себя», то другой чел (типа я), почитав их сможет понять, стОит ли тратить на разборки время. В первую очередь интересует вопрос о параллельной работе:
1) работает ли одновременно с VFP с одними dbf-ками?
2) что-нибудь типа "net use" работает?
3) "!cmd/c start qq.rtf" откроет ворд?
Просто если вдруг найдётся более лёгкое рабочее решение, чем VirtualBox+WinXP/7, это здОрово. Ну и да, это другая тема.

Хорошо, завтра видимо тогда уже, добавлю новую тему, постараюсь рассказать об основных моментах, которые мне были необходимы. Остальное, как говорится - каждый сам для себя может пробовать. Если что-то полезное обнаружится, можно будет в той же теме добавлять, на случай, если кому-то еще полезным окажется.
Мои FPD-программы в принципе чисто локальные были. Хранение, поиск и обработка ряда бухгалтерских данных с получением каких-то выборок, ну и с распечаткой разумеется. Для последнего, после множества экспериментов с виртуальными дос-принтерами я применил когда-то в итоге свое собственное, на мой взгляд самое оптимальное, решение, о котором пару раз когда-то уже тут и рассказывал. Чем оно еще удобно оказалось в частности, что ему безразлична разрядность системы. Могу и про него упомянуть.
По поводу разделения dbf не пробовал, но думаю при соблюдении основных принципов такой работы скажем под той же WinXP вполне возможно будет аналогично и на 64-битных Win-системах.
По открытию виндовских программ - открывает. С сетью, хотя пока и не пробовал, но тоже должно по идее работать.
Т.е. по сути это Досбокс - но очень сильно усовершенствованный именно в плане коммерческих приложений и работы с виндой. Скажем игры на нем уже возможно будут идти хуже. В отличие от его прототипа. Единственный, пожалуй, минус - не кроссплатформенный, в отличие от Досбокса. Т.е. под линуксами уже напрямую не запустится. Возможно конечно через wine, но насколько такое будет хорошо, трудно сказать, не проверив.


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

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

Сообщений: 20385
Дата: 04.06.18 15:17:47ОтветитьЦитировать
Хочется выразить отдельную благодарность товарищу Са(-ах какому товарищу), сумевшему в нужное время в нужном месте ознакомить магистра WIN(DOS)-наук Ибн-сину Криспу с оной разработкой. Будем с нетерпеньем ждать дальнейших репортажей на неувядаемую тему. :bi:
Ratings: 0 negative/0 positive

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

Сообщений: 82
Дата: 04.06.18 15:48:14ОтветитьЦитировать
Crispy
ну и с распечаткой разумеется. Для последнего, после множества экспериментов с виртуальными дос-принтерами я применил когда-то в итоге свое собственное, на мой взгляд самое оптимальное, решение, о котором пару раз когда-то уже тут и рассказывал. Чем оно еще удобно оказалось в частности, что ему безразлична разрядность системы. Могу и про него упомянуть.
Упомяни.
Я после игр с виртуальными DOS-принтерами плюнул на это. Юзаю прогу Winprint, разработчик – какая-то фирма из Обнинска. Это exe-шник на 60 КБ, пускается командной строкой. Источник – текстовый файл, поддерживаются базовые esc-последовательности (их можно перенастроить в ini-файле): три варианта ширины шрифта, три варианта расстояний между строками, жирность, курсив, подчёркивание, перечёркивание, портрет/альбом, перевод страницы. Можно указать имя принтера или сетевого ресурса, на который отправлять печать, без указания отправляет на умолчальный принтер. Всё простенько, но вполне достаточно для DOS-отчётов. И не нужны никакие мониторы и доп.программы, используются два файла, exe и ini.
С твоей же подачи (forum.foxclub.ru) сейчас переделываю получение pdf. С помощью Doro PDF Writer. Подтверждаю твоё мнение – прога отличная, бесплатная, подход удобный и универсальный. И, судя по всему, вполне получится использовать связку этого Winprint и Doro для пакетного получения pdf/png/jpg/tif.

Crispy
По поводу разделения dbf не пробовал, но думаю при соблюдении основных принципов такой работы скажем под той же WinXP вполне возможно будет аналогично и на 64-битных Win-системах.
Здесь два (которые вижу) места, на которых может возникнуть затык:
1) не использует ли эмулятор какие-то свои хитрые способы блокировок на файловом уровне;
2) насколько быстро работает файловая работа Fox <-> DOS-API <-> эмулятор <-> Win-API.

И да, Са(-ах какому товарищу) поклон:urra: Как и многим здесь:beer2:



Исправлено: andrewk, 04.06.18 15:56
Ratings: 0 negative/0 positive

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

Сообщений: 32168
Дата: 04.06.18 16:29:26ОтветитьЦитировать
andrewk
Crispy
По поводу разделения dbf не пробовал, но думаю при соблюдении основных принципов такой работы скажем под той же WinXP вполне возможно будет аналогично и на 64-битных Win-системах.
Здесь два (которые вижу) места, на которых может возникнуть затык:
1) не использует ли эмулятор какие-то свои хитрые способы блокировок на файловом уровне;
2) насколько быстро работает файловая работа Fox <-> DOS-API <-> эмулятор <-> Win-API.
+ разные кодовые страницы, что выливается в "порчу" некоторых индексов при совместной работе с VFP.
Я не советую "работать" с одними и теми же dbf из FPD и VFP - использовать их для передачи данных, т.е. с одной стороны чётко read only, вполне (озаботившись всеми нюансами связанными с кодовыми страницами, и при том по возможности не работая "одновременно"), но не обычная "оперативная" работа (даже в варианте "по очереди").


------------------
WBR, Igor
Ratings: 0 negative/0 positive

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

Сообщений: 82
Дата: 04.06.18 16:50:41ОтветитьЦитировать
Igor Korolyov
+ разные кодовые страницы, что выливается в "порчу" некоторых индексов при совместной работе с VFP.
Это конечно. Но это совсем другая тема, о совместной работе вообще. Ну то есть это проблема не насчёт эмуляции. Проблема не малая, но зная эти нюансы можно решить или обойти.
Говоря просто: не иметь индексы по полям, где символы >127. Символьные коды только 0-127 либо держать CpDbf()=0. Ну и тому подобное.
Ratings: 0 negative/0 positive

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

Сообщений: 32168
Дата: 04.06.18 18:30:55ОтветитьЦитировать
Вопрос прост - зачем "обходить" то, куда можно просто "не ходить"
Для FPD приложений вполне естественным является режим работы на основе "загрузки/выгрузки" - по многим причинам, но реально многопользовательские задачи с конкурентным доступом к общим таблицам на FPD не часто реализовывались. Так что я лично не вижу проблем именно по этому принципу и организовывать обмен данными с VFP или там ещё чем... Подготовил набор, выгрузил, возможно просемафорил "другой стороне" что всё ок, забирай


------------------
WBR, Igor
Ratings: 0 negative/1 positive

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

Сообщений: 82
Дата: 04.06.18 23:40:19ОтветитьЦитировать
Igor Korolyov
Вопрос прост - зачем "обходить" то, куда можно просто "не ходить"
Простота такой постановки вопроса основана на существенном допущении: можно не ходить. А если нельзя?
Есть нифига не маленькая прога, изначально писанная на FPD, которая 20 лет вполне успешно работает во многих конторах, в том числе в активно-сетевом режиме. И враз махнуть рукой и сказать "всё, это не запускаем, запускаем это" у меня никакой возможности не было, поскольку для этого нужно, чтоб VFP-вариант обладал как минимум не меньшим функционалом. Поэтому пришлось идти по пути одновременной работы на одних данных. Да, в скором (надеюсь) времени я избавлюсь от этих головняков, но на данный момент приходится именно "обходить", а не "не ходить". К тому ж этот "обход" труда не доставляет. Ну как-то так :-[
Ratings: 0 negative/0 positive



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

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


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