:: Visual Foxpro, Foxpro for DOS
В Windows 7 падает кодовая страница 866 после вызова Word из FPD
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Всем доброго времени суток!
После вызова из приложения FPD 2.6 редактора Word (2003 или 2007 - версия Word в данном случае, очевидно, не имеет значения) с помощью командной строки
!c:\windows\cmd /c start winword /x /m<имя макроса> и возврата управления в приложение FPD происходит "падение" кодовой страницы кириллицы (вместо кириллицы выводятся пресловутые "кракозябы"). Причем сей эффект наблюдается только для шрифтов Lucida и Console (установленных в свойствах bat-файла, запускающего приложение FPD), для растровых же (точечных) шрифтов такой проблемы нет. Казалось бы, на нет и суда нет, ан нет... Растровые шрифты позволяют создать в лучшем случае окно размером в четверть экрана (при установке максимального размера шрифта), что в большинстве случаев оказывается неприемлемым для пользователя. У меня были большие надежды на SerPak 1 For Windows 7, но, как часто бывает, надежды не оправдались, и проблема осталась и после SerPak 1. Вообще говоря, эта
проблема возникает и при запуске Wodr из командной строки (не из среды FPD). Возможно, кто-то уже решал аналогичную проблему, но, по крайней мере, мне не удалось при "беглом" поиске по форумам получить ответ на этот вопрос.
Ratings: 0 negative/1 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
1) 7-ка как я понимаю x86?
2) Пример с простым bat/cmd и этой проблемой можешь привести? Чтобы была видна смена кодировки консоли в chcp - т.к. у меня ничего такого не происходит...
3) Зачем пишешь путь к cmd, тем более неправильный?
4) У меня консоль корректно отображает русский текст что в 866, что в 1251 TT шрифтами (Consolas или Lucida Console) - а вот растерные шрифты работают с русским корректно ТОЛЬКО в 866-й кодовой странице (что, впрочем, и неудивительно).


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Насчет Windows 7 - конечно, 32-разрядная, ведь 64-разрядная FPD просто не запустит (на всякий случай я это в свое время проверял).
Пример простого bat-файла:

foxprox menu.app (выбросил все из реального bat-файла, но проблема-то все равно остается)

Насчет пути к CMD - признаюсь, бес попутал, но в данном случае это непринципиально.

Вообще говоря, можно проблему сформулировать более узко. Кодовая страница кириллицы пропадает при вызове CMD, а не при вызове Word (опять каюсь - отчего же
сразу об этом не написал?). Если просто исполнить команду !CMD /c (то бишь ничего не делать и вернуть управление вызвавшему приложению), то кириллица "валится". Даже после того, как кодовая страница для Lucida Console и Consolas падает, достаточно в свойствах приложения Foxpro установить точечный шрифт, и "кракозябы" тут же исчезают, и появляется кириллица. К слову сказать, если просто запустить Foxpro (не из bat-файла), то это ровным счетом ничего не меняет.
А происходит это примерно так. Пользователь формирует выходную форму, после чего Fox вызывает Word c соответствующим макросом, пользователь работает с Word,
возвращается в приложение Foxpro и видит "кракозябы". Насчет "привести пример, чтобы была видна смена кодировки консоли в chcp" я не совсем понял, что имеется ввиду.
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
Вроде бы этот вопрос поднимали, поищите по конференции.


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Simple777
Насчет Windows 7 - конечно, 32-разрядная, ведь 64-разрядная FPD просто не запустит
Сама по себе - нет, но есть ведь разные "эмуляторы" и "виртуализаторы" в т.ч. Windows XP Mode...

Simple777
Насчет "привести пример, чтобы была видна смена кодировки консоли в chcp" я не совсем понял, что имеется ввиду.
Имелось в виду пример БЕЗ FPD - т.е. один батник запускающий другой (с вызовом новой копии командного интерпретатора) и в итоге ломающий у себя chcp - т.е. текущую кодировку консоли...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Влад Колосов
Вроде бы этот вопрос поднимали, поищите по конференции.

Igor Korolyov
Имелось в виду пример БЕЗ FPD - т.е. один батник запускающий другой (с вызовом новой копии командного интерпретатора) и в итоге ломающий у себя chcp - т.е. текущую кодировку консоли...

Действительно, эта тема уже обсуждалась <forum.foxclub.ru/read.php?29512523,512780#msg-512780> тема ("Слетает шрифт (code page) при вызове RUN), но легче от этого не стало (Вы думаете, вам на сборах поставят тройку по экзамену? Поставят, но легче вам от этого не станет) В том числе приводились примеры с bat-файлами. Однако то обсуждение зашло в полный тупик. Если я правильно понял, то проблема сводится к тому, что "кто-то" (скорее всего, Windows) при установленных шрифтах Lucida Console и Consolas после возврата из CMD восстанавливает вместо 866 страницы страницу 437, причем Fox тут абсолютно не виноват. Может быть, есть какой-то способ "закинуть" в 437 кодовую страницу кириллицу? Или, возможно, где-то в свойствах кодовых страниц или шрифтов для NTVDM (если такие свойства есть) нужно изменить какие-либо умолчания? А, может быть, за истекший год после предыдущего обсуждения будут свежие идеи? Что же касается различных эмуляторов типа DosBox, то, наверное, их применение обязательно будет приводить еще к каким-нибудь проблемам, и так до бесконечности. Конечно, так устроен мир, - мы движемся от проблеме к проблеме. Но все же хотелось бы найти решение без применения каких-либо эмуляторов.
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
vk65

Сообщений: 402
Дата регистрации: 08.04.2008
попробуйте этот шрифт.
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
XAndy

Сообщений: 3803
Откуда: Киев
Дата регистрации: 05.02.2004
20 растровых шрифтов, размеры до 11x21, с ними указанного глюка не будет
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
vk65

Сообщений: 402
Дата регистрации: 08.04.2008
В том, что я прицепил, тоже много размеров, причем всё в одном файле.
Я, например, использую 12х27.
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
XAndy

Сообщений: 3803
Откуда: Киев
Дата регистрации: 05.02.2004
Спасибо, пригодится
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Спасибо за помощь! Вариант от vk65 NewDOS_F.rar содержит набор растровых шрифтов, наверное, на все случаи жизни. Возможно, в каких-то случаях пригодится и Fonts.rar от XAndy. Правда, радость была недолгой - в процессе проверки шрифтов я обнаружил ранее неизвестные мне заморочки с клавиатурой :confusedконечно, это не имеет никакого отношения к шрифтам), но это уже будет новая тема о глюках Windows 7. Эту же тему можно считать закрытой.
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Тема закрыта, но все же последние штрихи... В наборе шрифтов NewDOS_F.rar есть баги в шрифтах 14х33 и 16х39 - вместо большой Б выводится большая В. Конечно, это не проблема, есть много других размеров без багов, но лучше знать, чем не знать...
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Simple777
В наборе шрифтов NewDOS_F.rar есть баги в шрифтах 14х33 и 16х39 - вместо большой Б выводится большая В. Конечно, это не проблема, есть много других размеров без багов, но лучше знать, чем не знать...

Бегло глянул и подправил редактором шрифтов данные буквы. Заодно быстренько слегка подкорректировал во всех шрифтах написание букв Ж и ж - они практически везде не совсем корректно были нарисованы, поскольку в стандартном виде буква Ж как бы всегда должна иметь талию , чего там к сожалению не наблюдалось. По-хорошему, надо бы и остальные некоторые перерисовать под стандарты, но на это уже потребовалось бы несколько больше времени. В частности, неплохо бы например было сделать чуть-чуть различное написание у сходных русских и английских букв - чтобы не путать. Но увы, цигель-цигель ай-лю-лю.
Подправленный файл (NewDOS_F+) прикрепляю в прицепе.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
Crispy
Подправленный файл (NewDOS_F+) прикрепляю в прицепе.

Мир не без добрых людей!...

Когда над шрифтами прилежно
Сидите вы, склонясь небрежно,
Глаза и кудри опустя,
Я в умиленье, молча, нежно,
Любуюсь вами как дитя...

Прости, Александр Сергеич, не удержался...

PS. Что мы знаем о Crispy? Ничего... И это еще не все...

PS2. Просто хорошее настроение, никиках "вложений" и "подтекстов" просьба не искать.
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
wek

Сообщений: 6
Откуда: Ярославль
Дата регистрации: 11.02.2012
Привет всем лисоведам!
Я здесь впервые
И сразу наткнулся на проблему,
которая давно меня мучала
(это я о падении кодовой страницы!)
Мне кажется эта тема еще не закрыта!
Работал я по следующей схеме:
писал свои проги на Foxprox 2.6.DOS
(работа с и БД) а отчеты выводил в Word, Excel
в формате xml и html, меняя заранее заготовленный шаблон
с помощью команд низкого уровня (Fread() & Fwrite())
спецсимволы (#,$,@...) на необходимые значения из *.dbf
И все бы хорошо, но пришел век Win7. ....
Для 32-битной ОС растровые шрифты меня не устраивали по дизайну
и своей мелкотой и рубленностью. Внедрил по аналогии с Lucida Console
в свойство окна программы моноширинный шрифт Courier New
для этого - подредактировал системный реестр:
в ветке [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont]
создал строковый параметр (тип REG_SZ) "00" со значением Courier New (см. вложение)
Этот шрифт более изысканный, чем любой растровый и лучше чем Lucida Console
Но.. также сваливается после выдачи отчета в MSOffice или посещения Internet Exploorer
Кстати, выход из программы я делал напрямую, а не через CMD:
****
DO FDOFFICE
COM=ALLT(_MEM_OFF)+'WINWORD.EXE '+IMF2
RUN /0 &COM
****
где _mem_off - путь к Winword.exe в формате 8.3, найденный подпрограммой FDOFFICE,
а IMF2 = файл, обработанный на низком уровне шаблон (формат doc, docx, xml)
или:
*****
com='c:\progra~1\intern~1\iexplore.exe www.adm.yar.ru/pred/details.asp?'+KOD_OKPO
IF W_HWIN( -1, -1,' Интернет ','| Посмотреть информацию о ЛПУ в Интернете ?',' Да | Hет ')
run /0 &com
ENDIF
****



Исправлено 1 раз(а). Последнее : wek, 13.03.12 01:46
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
wek

Сообщений: 6
Откуда: Ярославль
Дата регистрации: 11.02.2012
Привет всем лисоведам!
Я здесь впервые
И сразу наткнулся на проблему,
которая давно меня мучала
(это я о падении кодовой страницы!)
Мне кажется эта тема еще не закрыта!
Работал я по следующей схеме:
писал свои проги на Foxprox 2.6.DOS
(работа с и БД) а отчеты выводил в Word, Excel
в формате xml и html, меняя заранее заготовленный шаблон
с помощью команд низкого уровня (Fread() & Fwrite())
спецсимволы (#,$,@...) на необходимые значения из *.dbf
И все бы хорошо, но пришел век Win7. ....
Для 32-битной ОС растровые шрифты меня не устраивали по дизайну
и своей мелкотой и рубленностью. Внедрил по аналогии с Lucida Console
в свойство окна программы моноширинный шрифт Courier New
для этого - подредактировал системный реестр:
в ветке [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont]
создал строковый параметр (тип REG_SZ) "00" со значением Courier New (см. вложение)
Этот шрифт более изысканный, чем любой растровый и лучше чем Lucida Console
Но.. также сваливается после выдачи отчета в MSOffice или посещения Internet Exploorer
Кстати, выход из программы я делал напрямую, а не через CMD:
****
DO FDOFFICE
COM=ALLT(_MEM_OFF)+'WINWORD.EXE '+IMF2
RUN /0 &COM
****
где _mem_off - путь к Winword.exe в формате 8.3, найденный подпрограммой FDOFFICE,
а IMF2 = файл, обработанный на низком уровне шаблон (формат doc, docx, xml)
или:
*****
com='c:\progra~1\intern~1\iexplore.exe www.adm.yar.ru/pred/details.asp?'+KOD_OKPO
IF W_HWIN( -1, -1,' Интернет ','| Посмотреть информацию о ЛПУ в Интернете ?',' Да | Hет ')
run /0 &com
ENDIF
****
Кстати, если в MSOdffice заходить через FAR- менеджер, то после возврата в FAR,
шрифт (Courier New) не портится!



Исправлено 1 раз(а). Последнее : wek, 13.03.12 02:07
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
samson_inv

Сообщений: 5915
Откуда: Ростов-на-Дону
Дата регистрации: 01.01.2005
Цитата:
Кстати, если в MSOdffice заходить через FAR- менеджер, то после возврата в FAR,
шрифт (Courier New) не портится!
far не доссессия
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
Simple777
Автор

Сообщений: 33855
Дата регистрации: 05.11.2006
wek
выход из программы я делал напрямую, а не через CMD:

Когда-то, давным-давно, я тоже делал выход напрямую (не через CMD), но столкнулся с различными ограничениями, сейчас даже вряд ли вспомню, вроде бы, надо было выполнить команду xcopy.exe, а напрямую почему-то это не получалось, и что-то еще, связанное с автоматическим восстановлением Normal.dot для Word. Но это к слову, а для обсуждаемой проблемы неважно, через какой вызов Word "рушится" страница 866.

wek
Для 32-битной ОС растровые шрифты меня не устраивали по дизайну и своей мелкотой и рубленностью

Сдается мне, что Crispy при желании мог бы поставить под сомнение это утверждение...

Решить проблему "в лоб" и найти, где же портится кодовая страница 866 и заменяется на 437, мог бы какой-нибудь крутой "Cool-хацкер" в режиме какого-нибудь "предварительного" отладчика, так ведь они же не по этим делам. Легенду о некоем таком отладчике, который грузится до Windows и все видит и все контролирует, я однажды слышал от одного "Cool-хацкера", но в дальнейшем ни от кого не получил подтверждения, что такие отладчики применяются - может быть, это их профессиональный секрет? На одном из Виндовых форумов даже сам Админ выразил мне соболезнование по поводу означенной проблемы - дескать, не знаем, где эта кодовая страница валится. Может быть, надо обратиться в службу технической поддержки MS? На данном же этапе использование растровых шрифтов бОльших размеров вполне закрывает проблему, по крайней мере для моих пользователей...
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
wek

Сообщений: 6
Откуда: Ярославль
Дата регистрации: 11.02.2012
1. Согласен: главное - не как войти, а как выйти
с потерей качества или без.....
2. Crispy я благодарен за выложенные растровые фонты!
(хотя еще 1 замеченный баг вместо № - n в верхнем индексе (надстрочный)...)
Да - это решение проблемы, но если 1 раз попробовать
внедрить шрифт Courier New, то от этой красоты трудно
отказаться (см.вложение)
3. Что же касается падения из кодовой страницы 866 в 437,
то у меня - сомнения - было ли падение и туда ли упало (а может в 1251)?
а может это подмена шрифта TrueType Lucida Console (Courier New)
на другой, в котором нет русской составляющей (сегмента)
И тогда проблема решаема: определяем этот шрифт и копируем
"хороший" на "плохой" с переименованием на плохой
и все это - где-то рядом в Windows\system32\fonts? ,например
или в системном реестре что-то скорректировать.
1,5 года назад я подобрался очень близко к решению
этой проблемы.. Дело было за малым: надо скопировать
и переименовать, но в среде Win7 это запрещено по соображениям безопасности
Т.е. надо это было сделать 1 раз до загрузки ядра Win7, но я поленился
и потерял инструкцию,(скаченную из форума) и желание...
Help me, please
4. Как в дистрибутив включить программу (автоматизировать процесс)
установки шрифтов. Т.е. подскажите, какой пр-мой с параметрами
устанавливаются шрифты?
Ratings: 0 negative/0 positive
Re: В Windows 7 падает кодовая страница 866 после вызова Word из FPD
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
wek
4. Как в дистрибутив включить программу (автоматизировать процесс)
установки шрифтов. Т.е. подскажите, какой пр-мой с параметрами
устанавливаются шрифты?


Сорри, сходу не соображу по всем пунктам. По поводу же № - если будет время возможно завтра с утра гляну и подправлю, если оно как говорится кому-то надо, а мне несложно. Замечу только заради справедливости, что сами данные шрифты созданы не мной, а взяты из комента выше, поскольку на создание такого числа шрифтов потребовалось бы скажем так времени явно намного больше, чем на произведенную мною правку. Я всего лишь произвел корректировку в двух из них заглавных букв Б, ориентируясь на приведенное выше замечание Simple777, а затем, чисто уже из эстетических соображений, во всех практически шрифтах еще и подправил изображения букв Ж и ж. О чем и собственно и говорил выше.

По поводу же установки конкретно растровых шрифтов, то я например данный шрифт даже и не "устанавливал", поскольку для работоспособности шрифтов старого образца обычно достаточно скопировать их в папку системных шрифтов, ну возможно иногда перезагрузиться на всякий случай. Хотя у меня например они и так сразу же появились для выбора (хотя можно устанавливать их и "обычным способом"). Проделывал все это на ХР, но думаю и на семерке тоже скорее всего прокатит простое копирование в нужный каталог. Естественно сама программа используемого установщика должна быть для этого запущена с нужными привилегиями, но это уже как бы другой вопрос. Единственное, что при желании тут можно еще автоматизировать - сразу же и прописать в свойства дос-окошка нужный шрифта. В ХР такое можно было просто решить через pif-файл, ну или через реестр при желании, но с семеркой сходу и не скажу, как в ней, возможно так же, возможно чуть иначе, лучше уточнить поиском. Ну или как оно чаще бывает "на свой страх и риск" - методом научного тыка.


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


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

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

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