|
Как записать в текстовый файл вывод для окна консольного приложения FoxPro/Clipper/DOS |
☑ |
0
Вуглускр1991
20.11.19
✎
12:11
|
Привет!
Кто знает такие программы?
На самом деле нужно больше: нужен эмулятор экрана и клавиатуры для запуска скриптов и чтения с экрана получившихся отчетов.
|
|
1
Asmody
20.11.19
✎
12:25
|
AutoIt умеет
|
|
2
ДенисЧ
20.11.19
✎
12:26
|
(1) в дос-окне?
|
|
3
Вуглускр1991
20.11.19
✎
12:28
|
(2) Бог с ним с DOS-ом, программа от Conhost.exe терминалом запитывается.
|
|
4
Пёс да лис
20.11.19
✎
17:25
|
(0) А дос-окно запускается черед DOS-Box? Или как? Можно простенькую резедентрую прогу написать, которая буфер экрана скидывает в файл при определенных условиях.
|
|
5
Вуглускр1991
20.11.19
✎
17:31
|
(4) Программа открывается в винде, писали её ребята из IBM, там оказывается уже все сделано в клиентском приложении, чтобы макросы из команд лепить и экраны сохранять. Такая опция в меню "Copy Append" первый раз увидел - добавляет выделенный фрагмент к буферу обмена.
|
|
6
Сияющий в темноте
20.11.19
✎
18:48
|
В досе
< ввод из файла
> вывод в файл
2> вывод в файл потока ошибок.
|
|
7
Вуглускр1991
20.11.19
✎
20:31
|
(6) Представь себе, что это Нортон командер, который выводит байты в видеопамять видеоадаптера, которая отображена в оперативную память по адресу B8000h.
Там нужен именно граббер экрана с протоколом фиксации изменений, а вот уже изменения можно лить в поток.
Но даже если это не DOS (а это слава богу не ДОС), в винде текстовое окно - библиотека, вывод по адресам окна разным цветом разным шрифтом - это все равно библиотека. Может быть в составе WinCRT, может быть написана IBM отдельно, там парни не хуже чем в MS пишут проги.
Поток ввода, поток вывода и поток ошибок это тоже библиотека, но вот может ли она оперировать абстракциями типа "ПолеВвода" и "ТабличноеПоле" нарисованными в текстовой консоли? Я так думаю, что нет.
|
|
8
Garykom
гуру
20.11.19
✎
20:49
|
(7) Для консольной проги не проблема переназначить стандартный ввод и вывод а далее перехватывать его и обрабатывать как нуна.
Я такое делаю на Golang примерно вот так
cmd := exec.Command(apps, args...)
cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
out, err := cmd.Output()
if err != nil {
Log.Println(err)
}
Log.Println(string(convert(41, out)))
Тут у меня запуск консольной проги, чтение из ее стандартного вывода с записью в логи
|
|
9
Пёс да лис
20.11.19
✎
22:21
|
(7) Чувак просто пытался похвастаться своими глубокими знаниями, а не ответить по теме.
|
|
10
Вуглускр1991
21.11.19
✎
10:36
|
(9) Ты не прав, я лишь высказываю неуверенность в том, что вывод программы в данном случае может быть представлен стандартным потоком.
Для примера, проведи эксперимент, запиши поток стандартного вывода Far managera в файл и попробуй понять в какой момент пользователь перекинул курсор слева направо и вошел в каталог.
|
|
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший