Автор: ROMby Unknown , 1 сентября 2006
Проблема при работе с ДОС приложениями на некоторых машинах, после перезапуска приложения проблема пропадает на некторое время. При сравнении машин заметили что на машинах с проблемами, в свойствах ярлыка на приложение, отсутствует EMS память? В принципе похоже, что проблема именно из за этого. Софт на машинах одинаковый (Win ME), железо - разное.
Содержимое данного поля является приватным и не предназначено для показа.

BBCode

  • HTML-теги не обрабатываются и показываются как обычный текст
  • You may use the following BBCode tags:
    • [align]
    • [b]
    • [code]
    • [color]
    • [font]
    • [hr]
    • [i]
    • [img]
    • [list]
    • [quote]
    • [s]
    • [size]
    • [spoiler]
    • [sub]
    • [sup]
    • [table]
    • [u]
    • [url]
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.

Tronix

19 лет 6 месяцев назад

Не понял вопроса.
Ну а что мешает в ярлыке выставить EMS память?

geodimetr

19 лет 6 месяцев назад

М-м-да. Краткость, конечно - сестра таланта. Но и родственникам иногда бывает трудно договориться.

а) В чем конкретно выражается "странность", какого рода ошибки ?

б) Какие ДОС-приложения имеются в виду - или это БОЛЬШОЙ секрет ?


Причин "странного" поведения ДОС-приложений (особенно в Виндозе МЕ) может быть несколько:

1. На разных машинках эти ДОС-приложения прописаны по-разному. То есть, распределение памяти в параметрах запуска, пути к необходимым для работы директориям, размещение самих файлов приложения на дисках...

2. Драйвера на чипсет конкретных машинок могут оказаться кривыми, что может сказаться в том числе и таким образом...

3. Сама Винда МЕ на некоторых машинках окривела... хотя прямой она не была изначально, и более неподходящую среду для ДОС-приложений представить себе трудно.

4. Если в этом приложении хоть каким-то образом задействованы графические режимы - на видеокартах разных моделей и глюки могут быть разные...

Unknown BIOS (не проверено)

19 лет 6 месяцев назад

Дело в том, что в свойствах ярлыка нет возможности изменять EMS память на этих машинах.
Ошибку выдает при второй отправке на печать не выходя из задачи. Если из задачи выйти и снова войти, то можно распечатать снова только 1 раз. В ошибке пишет чтото типа нехватка памяти.
Две машины с проблемами имеют разное железо, разные принтеры (лазерный НР и матричнный ЭПСОН). Софт абсолютно одинаковый на 50-ти машинах. Проблемы на двух.
Может драйвер чипсета или еще че подобно не знаю.

geodimetr

19 лет 6 месяцев назад

По поводу "в свойствах ярлыка нет возможности...".

Значит, на рабочем столе - не сам ярлык программы, а ССЫЛКА НА ЯРЛЫК. Порыться внимательнее на этих машинах и на беспроблемных, посравнивать... скорее всего - криво вытащен сам ярлык. Настройки запуска ДОС-приложений менять МОЖНО. В конце концов, заново его создать и поместить на рабочий стол - и будет Вам щасте.

-----------------------------------------------------------------------------------

Однако, то, что происходит это именно при выводе на печать, и именно ПОСЛЕ первого вывода, который был успешен - говорит, скорее, о другом:

На этих двух машинках НАВЕРНЯКА криво установлены драйверы принтеров (или не убиты до конца драйверы других, давно почивших принтеров). Наиболее ве6роятные кандидаты в такие, почившие неубитые - что-нить из струйных Хрюлетов или Епсонов.

Поясняю. И у тех, и у других были так называемые спулеры - примочки, перехватывающие отправляемые принтеру байтики и помещающие их в специальный *TMP-файл, расположенный только они знают где (чтобы принтер потоком данных не захлебнулся). Агент шпулера прописывался в число запускаемых при загрузке Винды программ и занимался исключительно вызовом шпулера сразу, как только что-то отправится в LPT-порт.

Но и агент, и шпулер, перехватывающий всю посылаемую на печать лабуду - чужие, не от сегодняшнего драйвера, и хотя они честно отбуферили все что надо и не надо - команду уйти и очистить буфер печати отдают, ессно, не шпулеру... или она при имеющемся драйвере вообще не нужна... вот он и ждет, закрыться не может, и свой *TMP-файл держит. Посылаем на печать еще раз... следилка опять зовет шпулера, требует его загрузки. И - в зависимости от кривизны его написания ав-вторами драйвера: или шпулер грузится еще раз, вдобавок к невыгруженному, а тогда - писать куда ? - или не может погрузиться. Вот Винда и жалуется. На что ? А вот - памяти нет. Писать данные (или грузить шпулера) некуда. Когда же мы выходим из программы - Винда автоматом закрывает ВСЕ вызванные данной программой приложения. В том числе - и шпулера. Вуаля.

Лечится сия проблема сшибанием имеющихся принтерных драйверов - ВСЕХ, ПОД КОРЕНЬ ! и последующим долгим ковырянием в реестре и вышибанием "ручками" всех упоминаний о принтерах. После этого - перезагрузка и проверка всех запущенных Виндой процессов (на предмет затесавшегося среди них агента шпулера) и только затем - установка НУЖНЫХ драйверов.

Правда, МЕ- очень капризная тетка, хранит у себя тучу бэкапов того же реестра и старается все восстановить "как было" не спрашивая фамилии. Поэтому вышибать гнилые осколки принтеров из реестра МЕ - это особое искусство... но другого способа "восстановить справедливость" я не знаю.

Наконец, возможен и еще один вариант - наверняка печать из ДОС-приложений ведется через какую-нить программу-русификатор печати (типа DOSPRN или ей подобной). Тогда - кривизна может быть в ее настройке/установке: возможно, раньше она принадлежала другому принтеру. Тогда - абсолютно тем же механизмом, что описано для шпулера, работает (и глючит) эта программка-русификатор.

Baza

19 лет 6 месяцев назад

Похожий глюк при печати был на струйном лексмарке, вылечилось удалением Касперыча, тот блокировал прямые отбращения к порту управляющей программы от принтера :)

geodimetr

19 лет 6 месяцев назад

Да, но Касперыч ругается при этом не на ОБРАЩЕНИЕ К ПОРТУ, а на того самого агента шпулера (который это обращение перехватывает), справедливо считая такое действие ПОДОЗРИТЕЛЬНЫМ.