API AkelPad, или как перенастроить встроенные команды

Russian main discussion
  • Author
  • Message
Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Eskander88 wrote:Скажем, что бы работал что-то вроде:

Code: Select all

Exec(`cmd.exe /k echo `+AkelPad.GetSelText())
Где +AkelPad.GetSelText() - возвращает фрагмент выделенный в тексте.

Code: Select all

Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.Exec("cmd.exe /k echo " + AkelPad.GetSelText());`)

Offline
Posts: 157
Joined: Thu Nov 26, 2015 8:03 pm
Location: Rostov-on-Don

Post by Eskander88 »

У меня такой вариант:

Code: Select all

Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.Exec('cmd.exe /k '+AkelPad.GetSelText())`)
чтобы не было проблем, если попадутся (") кавычки.

Заинтересовал вариант, когда можно отправлять команды в несколько строк. Самый близко-обозримый способ реализации:
1. Получить значение выделенного фрагмента (с этим понятно)
2. Создать файл.
3. Записать фрагмент.
4. Сохранить в зарезервированную директорию.
5. Передать через Script::Main уже готовый bat-файл из зарезервированной директории (с этим понятно)

Подскажите, какие API можно использовать для реализации данных шагов.
А вообще есть ли готовое решение?

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Eskander88
Script.js:

Code: Select all

var sFile = "C:\\MySelText.cmd";
AkelPad.SaveFile(0, sFile, -1, -1, 0x2 /*SD_SELECTION*/);
AkelPad.Exec('cmd.exe /k "' + sFile + '"');
or using EvalCmd.js:

Code: Select all

"" Call("Scripts::Main", 1, "EvalCmd.js", `var sFile = "C:\\MySelText.cmd"; AkelPad.SaveFile(0, sFile, -1, -1, 0x2 /*SD_SELECTION*/); AkelPad.Exec('cmd.exe /k "' + sFile + '"');`)
Post Reply