Получить указатель на диалог в макросе

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Получить указатель на диалог в макросе

Post by Smitis »

Можно ли из макроса получить указатель (hDlg) на текущий открытый диалог?
Например, что-бы послать в него сообщение far.SendDlgMessage
Разум когда-нибудь победит.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Получить указатель на диалог в макросе

Post by zg »

Code: Select all

Macro
{
  area="Shell";key="CtrlShiftF1";flags="DisableOutput";description="arclite: backup";
  action=function()
    local F=far.Flags
    Keys("ShiftF1")
    local info=far.AdvControl(F.ACTL_GETWINDOWINFO,-1,0)
    if info and info.Type==F.WTYPE_DIALOG then
      local id=info.Id
      local focus=far.SendDlgMessage(id,F.DM_GETFOCUS,0,0)
      local text=far.SendDlgMessage(id,F.DM_GETTEXT,focus,0)
      text=os.date("%Y_%m_%d_%H_%M_%S_")..text
      far.SendDlgMessage(id,F.DM_SETTEXT,focus,text)
      far.SendDlgMessage(id,F.DM_EDITUNCHANGEDFLAG,focus,1)
    end
  end
}
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: Получить указатель на диалог в макросе

Post by Smitis »

Спасибо! Про AdvControl не додумался
Разум когда-нибудь победит.
Post Reply

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