Page 2 of 2
Posted: Mon Mar 07, 2016 2:33 pm
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());`)
Posted: Sun Apr 10, 2016 6:32 pm
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 можно использовать для реализации данных шагов.
А вообще есть ли готовое решение?
Posted: Sun Apr 10, 2016 7:48 pm
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 + '"');`)