Проблема при работе с ДОС приложениями на некоторых машинах, после перезапуска приложения проблема пропадает на некторое время. При сравнении машин заметили что на машинах с проблемами, в свойствах ярлыка на приложение, отсутствует EMS память? В принципе похоже, что проблема именно из за этого. Софт на машинах одинаковый (Win ME), железо - разное.
Не понял вопроса.
Ну а что мешает в ярлыке выставить EMS память?
М-м-да. Краткость, конечно - сестра таланта. Но и родственникам иногда бывает трудно договориться.
а) В чем конкретно выражается "странность", какого рода ошибки ?
б) Какие ДОС-приложения имеются в виду - или это БОЛЬШОЙ секрет ?
Причин "странного" поведения ДОС-приложений (особенно в Виндозе МЕ) может быть несколько:
1. На разных машинках эти ДОС-приложения прописаны по-разному. То есть, распределение памяти в параметрах запуска, пути к необходимым для работы директориям, размещение самих файлов приложения на дисках...
2. Драйвера на чипсет конкретных машинок могут оказаться кривыми, что может сказаться в том числе и таким образом...
3. Сама Винда МЕ на некоторых машинках окривела... хотя прямой она не была изначально, и более неподходящую среду для ДОС-приложений представить себе трудно.
4. Если в этом приложении хоть каким-то образом задействованы графические режимы - на видеокартах разных моделей и глюки могут быть разные...
У вас прекрасные дети ! Но все, что вы делаете РУКАМИ - никуда, никуда не годится !
Дело в том, что в свойствах ярлыка нет возможности изменять EMS память на этих машинах.
Ошибку выдает при второй отправке на печать не выходя из задачи. Если из задачи выйти и снова войти, то можно распечатать снова только 1 раз. В ошибке пишет чтото типа нехватка памяти.
Две машины с проблемами имеют разное железо, разные принтеры (лазерный НР и матричнный ЭПСОН). Софт абсолютно одинаковый на 50-ти машинах. Проблемы на двух.
Может драйвер чипсета или еще че подобно не знаю.
По поводу "в свойствах ярлыка нет возможности...".
Значит, на рабочем столе - не сам ярлык программы, а ССЫЛКА НА ЯРЛЫК. Порыться внимательнее на этих машинах и на беспроблемных, посравнивать... скорее всего - криво вытащен сам ярлык. Настройки запуска ДОС-приложений менять МОЖНО. В конце концов, заново его создать и поместить на рабочий стол - и будет Вам щасте.
-----------------------------------------------------------------------------------
Однако, то, что происходит это именно при выводе на печать, и именно ПОСЛЕ первого вывода, который был успешен - говорит, скорее, о другом:
На этих двух машинках НАВЕРНЯКА криво установлены драйверы принтеров (или не убиты до конца драйверы других, давно почивших принтеров). Наиболее ве6роятные кандидаты в такие, почившие неубитые - что-нить из струйных Хрюлетов или Епсонов.
Поясняю. И у тех, и у других были так называемые спулеры - примочки, перехватывающие отправляемые принтеру байтики и помещающие их в специальный *TMP-файл, расположенный только они знают где (чтобы принтер потоком данных не захлебнулся). Агент шпулера прописывался в число запускаемых при загрузке Винды программ и занимался исключительно вызовом шпулера сразу, как только что-то отправится в LPT-порт.
Но и агент, и шпулер, перехватывающий всю посылаемую на печать лабуду - чужие, не от сегодняшнего драйвера, и хотя они честно отбуферили все что надо и не надо - команду уйти и очистить буфер печати отдают, ессно, не шпулеру... или она при имеющемся драйвере вообще не нужна... вот он и ждет, закрыться не может, и свой *TMP-файл держит. Посылаем на печать еще раз... следилка опять зовет шпулера, требует его загрузки. И - в зависимости от кривизны его написания ав-вторами драйвера: или шпулер грузится еще раз, вдобавок к невыгруженному, а тогда - писать куда ? - или не может погрузиться. Вот Винда и жалуется. На что ? А вот - памяти нет. Писать данные (или грузить шпулера) некуда. Когда же мы выходим из программы - Винда автоматом закрывает ВСЕ вызванные данной программой приложения. В том числе - и шпулера. Вуаля.
Лечится сия проблема сшибанием имеющихся принтерных драйверов - ВСЕХ, ПОД КОРЕНЬ ! и последующим долгим ковырянием в реестре и вышибанием "ручками" всех упоминаний о принтерах. После этого - перезагрузка и проверка всех запущенных Виндой процессов (на предмет затесавшегося среди них агента шпулера) и только затем - установка НУЖНЫХ драйверов.
Правда, МЕ- очень капризная тетка, хранит у себя тучу бэкапов того же реестра и старается все восстановить "как было" не спрашивая фамилии. Поэтому вышибать гнилые осколки принтеров из реестра МЕ - это особое искусство... но другого способа "восстановить справедливость" я не знаю.
Наконец, возможен и еще один вариант - наверняка печать из ДОС-приложений ведется через какую-нить программу-русификатор печати (типа DOSPRN или ей подобной). Тогда - кривизна может быть в ее настройке/установке: возможно, раньше она принадлежала другому принтеру. Тогда - абсолютно тем же механизмом, что описано для шпулера, работает (и глючит) эта программка-русификатор.
У вас прекрасные дети ! Но все, что вы делаете РУКАМИ - никуда, никуда не годится !
Похожий глюк при печати был на струйном лексмарке, вылечилось удалением Касперыча, тот блокировал прямые отбращения к порту управляющей программы от принтера
Либо нечему гореть, либо нечем поджечь!
Да, но Касперыч ругается при этом не на ОБРАЩЕНИЕ К ПОРТУ, а на того самого агента шпулера (который это обращение перехватывает), справедливо считая такое действие ПОДОЗРИТЕЛЬНЫМ.
У вас прекрасные дети ! Но все, что вы делаете РУКАМИ - никуда, никуда не годится !
Отправить комментарий