*****************************************************************
***                  Log AkelPad plugin v5.2                  ***
*****************************************************************

2012-2016 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)


***  ***

־ʵʱ׽Ӧó


***  ***

Log::Watch
־

Log::Output
׽

Log::Settings
öԻ


*** ⲿ Log::Output ***

Call("Log::Output", 1, "PROGRAM", "WORKDIR", "REPATTERN", "RETAGS", INPUTCODEPAGE, OUTPUTCODEPAGE, FLAGS, "ALIAS")
  :
    1
      ִӦó򲢲׽
    "PROGRAM"
      ҪִеļΪ "", Ҫ "REPATTERN"  "RETAGS"
    "WORKDIR"
      Ŀ¼
    "REPATTERN"
      ʽģʽӦڴеÿһת༭еı
    "RETAGS"
      ģʽƥͼ
        /FILE=\1         Ҫתļ
        /GOTOLINE=\2:\3  ҪתкС
        /GOTOBYTE=\2     Ҫתֽƫơ
        /GOTOCHAR=\2     Ҫתַƫơ
        /FRAME=\1        Ҫת֡ݾ
    INPUTCODEPAGE
      ִļıĴҳ
      If -1, Զҳ
      If -2 δָʹòеĴҳ
    OUTPUTCODEPAGE
      ӿִļıĴҳ
      If -1, Զҳ
      If -2 δָʹòеĴҳ
    FLAGS (ֵ֮):
         1  塣
         2  С
         4  ִ֮ǰĵ
         8  ıĩβ
        16  ĩβ
        32  ԶС
        64  ʾ塣Ҫر: Call("Log::Output", 6)
       128  Ӧó˳͹ر塣

      4096  Դ - ѡĵѡΪʱ
      8192  Դ - ĵ
     16384  Դ - ѡ
            Ĭֵ: ʹԴ롣

   1048576  Ŀ - ѡѡΪΪĵ
   2097152  Ŀ - ǰĵ
   4194304  Ŀ - ǰĵѡ
   8388608  Ŀ - ½ǩ
            Ĭֵ: Ŀ - 塣
    "ALIAS"
      Coder ı: ".html"Ĭǲʹá

   ( ):
    Call("Log::Output", 1, `tracert akelpad.sourceforge.net`)
   (ѡ ):
    Call("Log::Output", 1, `ipconfig`, "", "", "", -1, -1, 1048577)
   (ִбļ):
    Call("Log::Output", 1, `"%d\Build.cmd" /S`, "%d", "^\s*(.*)[(:](\d+)([,:](\d+))?[):]", "/FILE=\1 /GOTOLINE=\2:\4", -2, -2, 4)

Call("Log::Output", 2, *WINDOW, *DOCK)
  :
    2
      ȡıڵľ Scripts ʹá
    *WINDOW
      ָָһıھı
    *DOCK
      ָָһָ DOCKṹָı
  :
    WScript.Echo(GetOutputWindow());

    function GetOutputWindow()
    {
      var lpWnd;
      var hWnd=0;

      if (lpWnd=AkelPad.MemAlloc(_X64?8:4 /*sizeof(HWND)*/))
      {
        AkelPad.Call("Log::Output", 2, lpWnd);
        hWnd=AkelPad.MemRead(lpWnd, 2 /*DT_QWORD*/);
        AkelPad.MemFree(lpWnd);
      }
      return hWnd;
    }

Call("Log::Output", 3, *EXECSTATE, *PLUGINTHREAD, *PROCESSHANDLE, *PROCESSID, *EXITCODE)
  :
    3
      ùڵǰִӦóϢ Scripts ʹá
    *EXECSTATE
      ָָһִ״̬ıΪ NULL
      ֵ֮:
        0  ״̬
        1  ִյ
        2  ߳ѴӦó򽫻ᱻִС
        4  ӦóѱִвС
    *PLUGINTHREAD
      ָָһӱִеӦóղ߳̾ıΪ NULL
    *PROCESSHANDLE
      ָָһձִеӦóĽ̾ıΪ NULL
    *PROCESSID
      ָָһձִеӦóĽ ID ıΪ NULL
    *EXITCODE
      ָָһձִӦó˳ıΪ NULL
  :
    WScript.Echo(GetExecState());

    function GetExecState()
    {
      var lpState;
      var nState=0;

      if (lpState=AkelPad.MemAlloc(4 /*sizeof(DWORD)*/))
      {
        AkelPad.Call("Log::Output", 3, lpState);
        nState=AkelPad.MemRead(lpState, 3 /*DT_DWORD*/);
        AkelPad.MemFree(lpState);
      }
      return nState;
    }

Call("Log::Output", 4, "TEXT", TEXTLEN, APPEND, CODEPAGE, "ALIAS")
  :
    4
      /еı Scripts ʹá
    "TEXT"
      Ҫı
    TEXTLEN
      ı (ĬֵΪ -1) -1ıִ NULL ʱֹ
    APPEND (֮һ):
      0 滻еı
      1 ı (Ĭֵ)
      2 ı
    CODEPAGE
      ANSI ıҳĬֵΪ 㣬ʹ ANSI ϵͳҳıΪ Unicode ʱá
    "ALIAS"
      Coder ı: ".html"Ĭǲʹá

Call("Log::Output", 5, "TEXT", TEXTLEN, APPEND)
   4 ͬԱ

Call("Log::Output", 6)
  :
    6
      ر塣
   (ʹú GetOutputWindow  GetExecState):
    WScript.Echo(GetStdOut("ipconfig"));

    function GetStdOut(pCmd)
    {
      var hWndOutput=GetOutputWindow();
      var pStdOut="";
      var bClose=true;

      AkelPad.Call("Log::Output", 1, pCmd, "", "", "", -1, -1, 64);
      while (GetExecState())
        WScript.Sleep(100);

      if (hWndOutput)
        bClose=false;
      else
        hWndOutput=GetOutputWindow();

      if (hWndOutput)
      {
        AkelPad.SetEditWnd(hWndOutput);
        pStdOut=AkelPad.GetTextRange(0, -1);
        AkelPad.SetEditWnd(0);
        if (bClose) AkelPad.Call("Log::Output", 6);
      }
      return pStdOut;
    }


*** ⲿ Log::Settings ***

Call("Log::Settings", 1, PAGE)
  :
    1
      öԻָҳ档
    PAGE
       ʱҳ
