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

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

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

Post by Maximus5 » Thu 04 Feb, 2016 11:46

Можно ли макросом получить список всех окон фара и узнать их ИД?

Maximus5
Posts: 3291
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Thu 04 Feb, 2016 15:22

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: 3291
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Thu 04 Feb, 2016 15:25

Этот 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: 5231
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

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

Post by zg » Thu 04 Feb, 2016 15:56

Maximus5 wrote:Фар перемешавает окна в произвольном порядке
это не так.

Maximus5
Posts: 3291
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Thu 04 Feb, 2016 15:58

А в каком если не произвольном?
До выполнения команды «dir» порядок один, после - другой.

Maximus5
Posts: 3291
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Thu 04 Feb, 2016 16:08

Еще по теме, старое: http://bugs.farmanager.com/view.php?id=2842
Сейчас поведение фара опять поменялось.

User avatar
zg
zero-gravity
Posts: 5231
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

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

Post by zg » Thu 04 Feb, 2016 16:54

Maximus5 wrote:А в каком если не произвольном?
z-order.
Maximus5 wrote:До выполнения команды «dir» порядок один, после - другой.
выполнение команды dir достаёт desktop вверх списка окон.

Maximus5
Posts: 3291
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Thu 04 Feb, 2016 17:04

выполнение команды dir достаёт desktop вверх списка окон.
Окно с наибольшим Pos "сверху"? То есть видимое?
Ок, а смысл этого z-order для плагинов и макросов? F12 показывает совсем другие циферки в Screens.

User avatar
zg
zero-gravity
Posts: 5231
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

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

Post by zg » Thu 04 Feb, 2016 17:43

Maximus5 wrote:Окно с наибольшим Pos "сверху"? То есть видимое?
да.
Maximus5 wrote:Ок, а смысл этого z-order для плагинов и макросов?
например узнать, какой из редакторов был открыт до текущего. где-то был плагин на эту тему.
Maximus5 wrote:F12 показывает совсем другие циферки в Screens.
я за то, чтобы показывать в f12 эти циферки, могу хоть сейчас сделать.

Maximus5
Posts: 3291
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Thu 04 Feb, 2016 17:56

какой из редакторов был открыт до текущего
В том-то и дело, что нет. Не «открыт» а «активирован». За время жизни окна оно прыгает по z-стеку, очевидно меняя свой Pos. Так что историю открытия фар наружу не отдает.
Ладно, мне без разницы.

User avatar
zg
zero-gravity
Posts: 5231
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

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

Post by zg » Thu 04 Feb, 2016 18:20

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

Post Reply

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

Who is online

Users browsing this forum: No registered users and 4 guests