Не доступна EMS память, причина сбоев DOS приложений???

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

Аватар пользователя Tronix

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

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

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

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

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

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

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

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

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

У вас прекрасные дети ! Но все, что вы делаете РУКАМИ - никуда, никуда не годится !

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

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

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

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

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

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

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

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

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

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

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

У вас прекрасные дети ! Но все, что вы делаете РУКАМИ - никуда, никуда не годится !

Аватар пользователя Baza

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

Либо нечему гореть, либо нечем поджечь!

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

У вас прекрасные дети ! Но все, что вы делаете РУКАМИ - никуда, никуда не годится !

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей