ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Считывание с экрана
  #1  
Старый 27.02.2008, 23:11
Hardover
Новичок
Регистрация: 23.02.2007
Сообщений: 24
Провел на форуме:
186184

Репутация: 5
По умолчанию Считывание с экрана

Вобщем в консольной программе надо выдернуть определенную строку или строки.
Вобще мне это надо сделать через программирование видеоадаптера но наврятле кто то знает как это сделать.
Поэтому хотя бы как это написать на паскале.
Например есть строчка "Привет мир"
подводим курсор к слову мир через
for i:=1 to 3 do
gotoxy(6+i,1)
и потом надо эти буквы запихнуть скажем в переменную C
Я прочитал весь учебник по программированию видеоадаптеров но не чего нужного мне не нашел. В инете порылся в справочнике по паскалю но кроме ввода с клавиатуры и вывода на экран я не нашел, а мне нужен ввод с экрана, ну и в иделе это сделать через программирование видеоадаптеров.
Точно знаю что если делать через видеоадаптер то левый верхний угол будет обозначаться В800 а дальше я так и не сдвинулся, даже не понял как надо описывать.
 
Ответить с цитированием

  #2  
Старый 27.02.2008, 23:28
gold-goblin
Познавший АНТИЧАТ
Регистрация: 26.03.2007
Сообщений: 1,095
Провел на форуме:
5265510

Репутация: 455


По умолчанию

Подводиш делаеш програмно 2 клик переводиш укозатель к концу строки симулируеш нажатие правой кнопкой перемещение на кнопку копирывать и 1 левый клик потом в программе переменной C присваеваеш данные из буфера =)
а через видио адаптер.... Получить скрин и анализировать текст (другова способа не вижу
 
Ответить с цитированием

  #3  
Старый 27.02.2008, 23:43
Aag
Познающий
Регистрация: 26.07.2005
Сообщений: 54
Провел на форуме:
47901

Репутация: 46
По умолчанию

То что ты хотел сделать с видеоадаптером возможно только в случае, если он работает в текстовом режиме ( это Ms Dos, или текстовая консоль Юникс) .
 
Ответить с цитированием

  #4  
Старый 27.02.2008, 23:45
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

Цитата:
Точно знаю что если делать через видеоадаптер то левый верхний угол будет обозначаться В800 а дальше я так и не сдвинулся, даже не понял как надо описывать.
ну да. далее зависит от режима текстового. начиная с b800 (если это правильно, я уже не помню...) идут байты, каждый из них значит символ на экране.
первая строчка, вторая строчка... в строке помоему 80 символов, на экране 25 строк.
что тут непонятного. адрес нужного символа найти можешь?

Цитата:
Подводиш делаеш програмно 2 клик переводиш укозатель к концу строки симулируеш нажатие правой кнопкой перемещение на кнопку копирывать и 1 левый клик потом в программе переменной C присваеваеш данные из буфера =)
а через видио адаптер.... Получить скрин и анализировать текст (другова способа не вижу
без комментариев.
 
Ответить с цитированием

  #5  
Старый 27.02.2008, 23:47
Hardover
Новичок
Регистрация: 23.02.2007
Сообщений: 24
Провел на форуме:
186184

Репутация: 5
По умолчанию

Программа работает в консоли Ms-dos

Последний раз редактировалось Hardover; 27.02.2008 в 23:58..
 
Ответить с цитированием

  #6  
Старый 27.02.2008, 23:51
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

ну и что дальше то ? весь реальный режим, включая модель памяти, эмулируются
 
Ответить с цитированием

  #7  
Старый 27.02.2008, 23:59
Hardover
Новичок
Регистрация: 23.02.2007
Сообщений: 24
Провел на форуме:
186184

Репутация: 5
По умолчанию

А как именно надо с этим работать?Нужно ли что то описывать, ведь если просто написать s:=B800 то первый символ стоящий в начале первой строки не будет присвоин S.
 
Ответить с цитированием

  #8  
Старый 28.02.2008, 00:07
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

А ПЕРЕОПРЕДЕЛИТЬ вывод консольной программы скажем в сокет.... обычно так перехватывают ЧУЖИЕ выводы
 
Ответить с цитированием

  #9  
Старый 28.02.2008, 00:13
Hardover
Новичок
Регистрация: 23.02.2007
Сообщений: 24
Провел на форуме:
186184

Репутация: 5
По умолчанию

Я бы даже не поленился прочитать про сокет, и возможно даже написал бы, но думаю что для домашнего задания пускай это и на пятерку это слишком.
 
Ответить с цитированием

  #10  
Старый 28.02.2008, 00:35
diehard
Постоянный
Регистрация: 30.09.2007
Сообщений: 815
Провел на форуме:
2590715

Репутация: 659


Отправить сообщение для diehard с помощью ICQ
По умолчанию

ох давно это было
в паскале ты можешь достучаться до буфера экрана через массив Mem[$b800:Offset], смещение вычисляешь как offset=80*y+x (размер экрана в стандартном текстовом режиме 80х25 символов)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
cmd + разрешение экрана или еще как нить =/ Exlibris Windows 4 19.01.2008 02:29
Запрос bul666 Болталка 9 05.06.2005 16:18
По эту сторону экрана. Lokky Болталка 4 16.01.2005 11:10



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ