Получить список окон и их идентификаторы?

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Получить список окон и их идентификаторы?

Post by Maximus5 »

Можно ли макросом получить список всех окон фара и узнать их ИД?
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Получить список окон и их идентификаторы?

Post by Maximus5 »

Code: Select all

local F = far.Flags

local function WindowsCount() return far.AdvControl (F.ACTL_GETWINDOWCOUNT) end

local function makeuid(Area,id,pos,name) return pos.." [Id="..id.."] "..Area.." `"..name.."`" end

local En = {
  [F.WTYPE_PANELS]="Panels",[F.WTYPE_VIEWER]="View",[F.WTYPE_EDITOR]="Edit",
  [F.WTYPE_DESKTOP]="Desktop",
}
local function getWindow(n) -- n = window's Pos [optional]
  local w = assert(far.AdvControl (F.ACTL_GETWINDOWINFO,n))
  w.uid = makeuid(w.TypeName,tostring(w.Id),tostring(w.Pos),w.Name)
  return w
end

Macro
{
  area="Common";
  key="CtrlAlt`";
  description="Test macro to show current windows of Far Manager";
action=function()
  local title = "Windows list: "..tostring(WindowsCount())
  local s = ""
  local Pos
  for i=1,WindowsCount() do --get window Pos by uid
    local w = getWindow(i)
    s = s..w.uid.."\n"
  end
  msgbox(title,s,8)
end;
}
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Получить список окон и их идентификаторы?

Post by Maximus5 »

Этот WindowInfo.Pos стал совсем бесполезен. Фар перемешавает окна в произвольном порядке, хотя F12 показывает их строго. Зачем?
Last edited by Maximus5 on Thu 04 Feb, 2016 15:56, edited 1 time in total.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Получить список окон и их идентификаторы?

Post by zg »

Maximus5 wrote:Фар перемешавает окна в произвольном порядке
это не так.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Получить список окон и их идентификаторы?

Post by Maximus5 »

А в каком если не произвольном?
До выполнения команды «dir» порядок один, после - другой.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Получить список окон и их идентификаторы?

Post by Maximus5 »

Еще по теме, старое: http://bugs.farmanager.com/view.php?id=2842
Сейчас поведение фара опять поменялось.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Получить список окон и их идентификаторы?

Post by zg »

Maximus5 wrote:А в каком если не произвольном?
z-order.
Maximus5 wrote:До выполнения команды «dir» порядок один, после - другой.
выполнение команды dir достаёт desktop вверх списка окон.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Получить список окон и их идентификаторы?

Post by Maximus5 »

выполнение команды dir достаёт desktop вверх списка окон.
Окно с наибольшим Pos "сверху"? То есть видимое?
Ок, а смысл этого z-order для плагинов и макросов? F12 показывает совсем другие циферки в Screens.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Получить список окон и их идентификаторы?

Post by zg »

Maximus5 wrote:Окно с наибольшим Pos "сверху"? То есть видимое?
да.
Maximus5 wrote:Ок, а смысл этого z-order для плагинов и макросов?
например узнать, какой из редакторов был открыт до текущего. где-то был плагин на эту тему.
Maximus5 wrote:F12 показывает совсем другие циферки в Screens.
я за то, чтобы показывать в f12 эти циферки, могу хоть сейчас сделать.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Получить список окон и их идентификаторы?

Post by Maximus5 »

какой из редакторов был открыт до текущего
В том-то и дело, что нет. Не «открыт» а «активирован». За время жизни окна оно прыгает по z-стеку, очевидно меняя свой Pos. Так что историю открытия фар наружу не отдает.
Ладно, мне без разницы.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Получить список окон и их идентификаторы?

Post by zg »

Maximus5 wrote:В том-то и дело, что нет. Не «открыт» а «активирован».
сорри, не так выразился, именно активирован.
Post Reply

Return to “Нужна помощь”