Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Print Screen в DOS 
V
    Опции темы
oskarmt
Дата 1.6.2010, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 30.5.2010

Репутация: нет
Всего: нет



спасибо большое друг))....ты мне очень помог...
вот ещё вопросик:
тоесть в любом случае мне нужна дискета с досом?
я просто не представляю как я буду сдавать преподу...тк у него на ноуте стоит dos  box smile
PM MAIL   Вверх
iff
Дата 1.6.2010, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: 4
Всего: 16



Я скажу про себя: у меня стоит фридос (он полностью совместим с мс-дос)и виндовс экспи.
Я зохожу во фридос. Нажимаю Preent Screen и принтер начинает печатать содержимое экрана (в винде так не сделаешь). Допустим я запускаю эту прогу - она благополучно загружает в память обработчик прерывания и завершает работу. Теперь я например запускаю нортон командер. Нажимаю Preent Screen, но принтер ничего не печатает, а зато в текущей директории появляется файл SCREEN00.TXT, который содержит текст с дисплея.

При нажатии Preent Screen выполняется 5-ое прерывание. Но в винде оно не выполняется при нажатии этой кнопки. Т.к. в винде совсем другая подпрограмма: при нажатии Preent Screen  она (винда) копирует в буфер обмена изображения экрана. И соответственно при нажатии Preent Screen принтер не печатает ничего. Однако обработчик прерывания там есть: если (как я показывал уже выше) при помощи debug программным способом вызвать прерывание 5, то принтер начинает печатать. А если перед этим запустить мою программу, то тогда появляется файл SCREEN00.TXT, который содержит текст с дисплея. Кнопка Preent Screen активирует прерывание 5 "из-нутри", а инструкция int 05h - "снаружи". Только вот винде это прерывание не активируется "из-нутри".

П.С. Ты откомпилировал эту прогу в СОМ-файл?

Добавлено @ 20:27
Так и скажи преподу: что мы пишем под дос, а эмулятор не может эмулировать обсолютно все функции и нюансы этой ОС. И загрузочную дискету мс-дос с прогой и нортоном сделай на всякий случай)))

Это сообщение отредактировал(а) iff - 1.6.2010, 20:40


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
oskarmt
Дата 1.6.2010, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 30.5.2010

Репутация: нет
Всего: нет



у меня тут нарисовывается ещё проблемка)флопик не работает)
лабу я откомпилировал)
а вот допустим из альтернативных вариантов....:
нельзя ли повесить эту программу на 9ое прерывание,чтобы при нажатии определённой кнопки данная программа выполнялась...или я немного не в ту степь?
PM MAIL   Вверх
oskarmt
Дата 1.6.2010, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 30.5.2010

Репутация: нет
Всего: нет



вообщем я всё сделал,скрин получился)спасибо огромное за помощь

PM MAIL   Вверх
iff
Дата 2.6.2010, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: 4
Всего: 16



Цитата(oskarmt @  1.6.2010,  21:15 Найти цитируемый пост)
нельзя ли повесить эту программу на 9ое прерывание

Можно, но зачем. Для пользователя логичней, что при нажатии кнопки PrtSc возникает скрин экрана. Да и тем более, если при нажатии определённой кнопки данная программа выполняется, то это определенная кнопка теряет свои функции. (например если такая-же компюинация клавишь используется в другой программе, то при использовании этой комбинации будет создоваться ненужный скрин). Да и тем более там (с 9-ым прерыванием) ещё нужно ещё сохранить прежний вектор прерывания, и при хаврешении программы отдавать управление туда. (а это всё время выполнения программы...)

Цитата(oskarmt @  1.6.2010,  23:45 Найти цитируемый пост)
вообщем я всё сделал

Молодец
Через 5-ое прерывание? Запустил его программно при помощи инструкции int 5?

П.С. А вот скрин нортона:

Это сообщение отредактировал(а) iff - 2.6.2010, 13:29

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  screennc.txt 2,00 Kb


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
oskarmt
Дата 2.6.2010, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 30.5.2010

Репутация: нет
Всего: нет



Цитата(iff @ 2.6.2010,  13:27)
Цитата(oskarmt @  1.6.2010,  21:15 Найти цитируемый пост)
нельзя ли повесить эту программу на 9ое прерывание

Можно, но зачем. Для пользователя логичней, что при нажатии кнопки PrtSc возникает скрин экрана. Да и тем более, если при нажатии определённой кнопки данная программа выполняется, то это определенная кнопка теряет свои функции. (например если такая-же компюинация клавишь используется в другой программе, то при использовании этой комбинации будет создоваться ненужный скрин). Да и тем более там (с 9-ым прерыванием) ещё нужно ещё сохранить прежний вектор прерывания, и при хаврешении программы отдавать управление туда. (а это всё время выполнения программы...)

просто  хотелось бы чтобы она работала не только под dos,но ещё и под винду.....
Цитата

Молодец
Через 5-ое прерывание? Запустил его программно при помощи инструкции int 5?

)))у друга запустил дос и всё сделал) smile 
а вот ещё вопрос)расскажи пож что за крутой способ оставить программу резидентом?
MOV     AH, 31H
MOV     DX, OFFSET INT05END
INT     21H
...
INT05END:
чёта я его не сильно втыкаю....да и функцию 31h никогда не встречал....

Это сообщение отредактировал(а) oskarmt - 2.6.2010, 15:46
PM MAIL   Вверх
iff
Дата 2.6.2010, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: 4
Всего: 16



Функция 31 прерывания 21 - завершить работу и остаться в памяти резидентной


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
oskarmt
Дата 2.6.2010, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 30.5.2010

Репутация: нет
Всего: нет



а ну всё)))
вопросов больше нету)
ещё раз спасибо огромное за помощь)
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0852 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.