возможность из Lua писать в консольный буфер FARа

Здесь обсуждается всё, что касается макросов.
gotar
Posts: 323
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 9 times
Been thanked: 1 time

возможность из Lua писать в консольный буфер FARа

Post by gotar »

Latest post of the previous page:

Как что то записать на экран Desktopa?
Мой план:
1. Сохранить номер текущего окна
2. Переключиться в нулевое окно
3. Записать информацию на стандартный вывод
4. Ввостановить текущее окно

полностью провалился

На всякий случай привожу текст скрипта
  1. _G.sprint = function(...)
  2. pos=far.AdvControl("ACTL_GETWINDOWINFO").Pos
  3. -- if ( far.AdvControl("ACTL_GETWINDOWINFO",1).Type ~= 0) then  ErrMsg(tostring((...)),"Desktop") return end
  4. far.AdvControl("ACTL_SETCURRENTWINDOW",1)
  5. far.AdvControl("ACTL_COMMIT")
  6. luaprint(...)
  7. far.AdvControl("ACTL_SETCURRENTWINDOW",pos)
  8. far.AdvControl("ACTL_COMMIT")
  9. end
  10. sprint("point 1\n")
  11. win.Sleep(3000)
  12. sprint("point 2\n")
COMMIT по всей видимости не нужен. Я его сделал с горя. luaprint - стандартный print до его переопределения в LuaMacro.

User avatar
HaRT
Moderator
Posts: 9446
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 106 times
Been thanked: 223 times

Post by HaRT »

gotar
Ну не Desktop это! Пожалуйста, не надо использовать это неудачное название.
Обсуждение там.
Фар есть инструмент, а не нянька. © 2009 DrKnS

gotar
Posts: 323
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 9 times
Been thanked: 1 time

Re: Как записать информацию на Desktop?

Post by gotar »

Пока я вижу WTYPE_DESKTOP

User avatar
HaRT
Moderator
Posts: 9446
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 106 times
Been thanked: 223 times

Re: Как записать информацию на Desktop?

Post by HaRT »

gotar wrote:Пока я вижу WTYPE_DESKTOP
И никакого дискомфорта от такого названия не возникает?
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 12829
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 290 times

Re: Как записать информацию на Desktop?

Post by John Doe »

gotar wrote:Как что то записать на экран Desktopa?
Ответ был вам уже дан ранее.
Переключаться между окнами не надо вообще.

P.S.
Читаю вопрос в цитате и сам диву даюсь. Даже абстрактный UserScreen был бы лучше, по крайней мере не вызывает ложных ассоциаций.

gotar
Posts: 323
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 9 times
Been thanked: 1 time

Re: Как записать информацию на Desktop?

Post by gotar »

В этом случае информация пишется поверх экрана и затирается при обновлении экрана. У меня в программе слова Desktop нет. Просьба стереть не относящееся к делу.
Last edited by gotar on Wed 27 Aug, 2014 13:53, edited 1 time in total.

User avatar
John Doe
Бюрократ
Posts: 12829
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 290 times

Re: Как записать информацию на Desktop?

Post by John Doe »

Значит вы делаете не то, что описано в мануале

User avatar
John Doe
Бюрократ
Posts: 12829
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 290 times

Re: Как записать информацию на Desktop?

Post by John Doe »

gotar
Короткая у вас однако память: http://forum.farmanager.com/viewtopic.p ... 41#p111541

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

возможность из Lua писать в консольный буфер FARа

Post by AleXH »

Ветку прочёл, ничего не понял, поэтому повторю:

Кто-нибудь пояснит, как сейчас бороться с разрушением изображения в окне фара при выводе инфы в консоль консольными тулзами, запускаемыми в макросах? Из-за их вывода панели "уезжают" вверх, функциональные клавиши исчезают, либо поверху переписываются и тд и тп. Пример moon-скрипта

Т.е. в старых фарах (FAR2 например), тулзы выводили индикаторы прогресса, сообщения и тп. в консоль, после отработки макроса снова открывались панели. Сейчас тулзы пишут прямо в панели, в результате изображение разрушается.

User avatar
John Doe
Бюрократ
Posts: 12829
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 290 times

возможность из Lua писать в консольный буфер FARа

Post by John Doe »

AleXH wrote: Т.е. в старых фарах (FAR2 например), тулзы выводили индикаторы прогресса, сообщения и тп. в консоль,
А теперь вспомните как вы их там вызывали, и осознайте причину разного поведения.
AleXH wrote: как сейчас бороться с разрушением изображения в окне фара при выводе инфы в консоль консольными тулзами,

Code: Select all

panel.GetUserScreen()
os.execute(.......)
panel.SetUserScreen()

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

возможность из Lua писать в консольный буфер FARа

Post by AleXH »

Вы требуете слишком многого :) Как я понимаю, тулзы выводят в консоль шела, в котором они запущены, или что там в нём исполняет роль консоли.

User avatar
John Doe
Бюрократ
Posts: 12829
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 290 times

возможность из Lua писать в консольный буфер FARа

Post by John Doe »

AleXH wrote: Вы требуете слишком многого
В смысле? Не можете вспомнить как вызывали свои тулзы в Far 1/2?

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

возможность из Lua писать в консольный буфер FARа

Post by AleXH »

По рабоче-крестьянски они и вызывались из макроса FormatMenu, сейчас перенёс в скрипт FAR3 и всё стало плохо :)

User avatar
John Doe
Бюрократ
Posts: 12829
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 290 times

возможность из Lua писать в консольный буфер FARа

Post by John Doe »

AleXH wrote: из макроса FormatMenu
Это как?
Может хотя бы код приведёте?

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

возможность из Lua писать в консольный буфер FARа

Post by AleXH »

Так там же свой собственный , который по сути работал в фаровской консоли (имхо).

Теперь же пришлось переделать на

User avatar
John Doe
Бюрократ
Posts: 12829
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 290 times

возможность из Lua писать в консольный буфер FARа

Post by John Doe »

Что есть FormatMenu?

Post Reply

Return to “Обсуждение макросов”