' TCIMG.vbs
'======================== Описание =====================================
' Скрипт для вызова утилиты TCIMG с различными параметрами
'================== Дополнительные Параметры ==============================
' В строке параметров можно использовать следующие теги:
' #stext# - будет заменён выделенным текстом
' #sline# - будет заменён выделенной строкой
' #akelname# - будет заменён текущим именем редактора (AkelPad.exe)
' #symbols# - будет заменён символом
' #file# - будет заменён путём файла открытого на редактирование
' #hendl# - будет заменён дескриптором главного окна
' #ahendl# - будет заменён дескриптором активного окна редактирования
' <X> - разделитель между командами
'======================== Примеры ======================================
' -"Выход без сохранения сессии" Call("Scripts::Main", 1, "TCIMG.vbs", `"close=#akelname#"`) Icon("%a\AkelPadImage.dll",388)
' -"Рестарт без сохранения сессии" Call("Scripts::Main", 1, "TCIMG.vbs", `"resrt=#akelname#"`) Icon("%a\AkelPadImage.dll",45)
' -"Рестарт AkelPad" Call("Scripts::Main", 1, "TCIMG.vbs", `"resrt=#akelname#||1"`) Icon("%a\AkelPadImage.dll",45)

' Автор: Аверин Андрей
' Версия: 1.5 (06.04.2013 - 04.07.2018)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru/forum/9-822-5936-16-1365322478
'===========================================================================
' используется Functions.vbs, который следует положить в ...AkelFiles\Plugs\Scripts\Include\
' http://tc-image.3dn.ru/forum/9-346-1076-16-1333500845
' используется утилита TCIMG.exe - путь берётся из AkelPadImage.ini

' Актуальную версию утилиты можно скачать http://wincmd.ru/plugring/TCIMG.html
' Задать вопросы можно в теме №1 http://tc-image.3dn.ru/forum/5-498-1
' Задать вопросы можно в теме №2 http://forum.ru-board.com/topic.cgi?forum=5&topic=50714&start=0
' Задать вопросы можно в теме №3 https://t.me/tcimg (Telegram)
' Описание в справке утилиты TCIMG.chm или http://tcimg.dreamlair.net/TCIMG_ONLINE.html
' Дополнительные примеры с использованием скрипта http://tcimg.dreamlair.net/TCIMG_ONLINE/html/html/int/akelpad.htm
'===========================================================================
With WScript Cnt = .Arguments.Count
  If Cnt = 0 Then .Quit ' если параметр не передаётся, то выход
  P = .Arguments(0)
End With

With AkelPad .Include("Functions.vbs")
  TCIMG = Chr(34) & GetPath(ReadOption("IMAGE", "TCIMG", 3)) & Chr(34) ' путь к утилите TCIMG, берётся из AkelPadImage.ini
  
  If InStr(P, "#hendl#") > 0 Then ' дескриптор главного окна
    T = .GetMainWnd()
    If Len(T) = 0 Then WScript.Quit
    P = Replace(P, "#hendl#", T)
  End If
  
  If InStr(P, "#ahendl#") > 0 Then ' дескриптор активного окна редактирования
    T = .GetEditWnd()
    If Len(T) = 0 Then WScript.Quit
    P = Replace(P, "#ahendl#", T)
  End If
  
  If InStr(P, "#stext#") > 0 Then
    T = .GetSelText ' получение выделенного текста
    If Len(T) = 0 Then T = .GetTextRange(0, -1) ' если нет выделения берётся весь текст
    If Len(T) = 0 Then Wscript.Quit
    P = Replace(P, "#stext#", T)
  End If

  If InStr(P, "#sline#") > 0 Then
    T = .GetSelText ' получение выделенного текста
    If Len(T) = 0 Then T = GetLine ' если нет выделения берётся активная строка
    If Len(T) = 0 Then Wscript.Quit
    P = Replace(P, "#sline#", T)
  End If

  If InStr(P, "#akelname#") > 0 Then P = Replace(P, "#akelname#", GetFF(GetExeAkel, 3))

  If InStr(P, "#symbols#") > 0 Then ' получение символа
    If Len(Sym) = 0 Then Sym = GetSymLeft
    If Len(Sym) = 0 Then WScript.Quit
    If Len(Sym) > 1 Then Sym = Left(Sym, 1)
    If Len(RegExpSearchInText(Sym, "[a-z]")) > 0 Then : Lng = "'английский']" : Else : Lng = "'русский']" : End If
    P = Replace(P, "#symbols#", "AkelPad - [Символ '"& Sym & "' Chr(" & Asc(Sym) & ") Язык:" & Lng) : W = 1
  End If

  If InStr(P, "#file#") > 0 Then ' путь файла открытого на редактирование
    pFile = .GetEditFile(0)
    If Len(pFile) = 0 Then WScript.Quit
    T = "AkelPad - [Дата создания : " & GetFF(pFile, 9) & " Изменён: " & GetFF(pFile, 11) & " Размер: " & GetFF(pFile, 12) & " байт]"
    P = Replace(P, "#file#", T)
    W = 1
  End If

  If InStr(P, "#akeltotal#") > 0 Then : P = Replace(P, "#akeltotal#", "AkelPad - [Папка AkelPad " & .GetAkelDir(0) & " : Папка Total Commander " & CreateObject("WScript.Shell").ExpandEnvironmentStrings("%COMMANDER_PATH%") & "]") : W = 1 : End If

  P = """" & Replace(Replace(P, " ", "~~"), "<X>", """ """) & """"

  TCIMGRUN(P)

  If W > 0 Then WScript.Sleep 5000 : TCIMGRUN("title=AkelPad||$AkelPad4") : End If
End With

Sub TCIMGRUN(C) CreateObject("WScript.Shell").Run TCIMG & C, 1, False End Sub
' Sub TCIMGRUN(C) CreateObject("WScript.Shell").Run TCIMG & " " & C, 1, False End Sub