Page 9 of 74
Posted: Sun Mar 23, 2008 3:44 am
by Instructor
Ещё одна мега-идея!
Posted: Tue Mar 25, 2008 1:07 pm
by VladSh
Предлагаю:
1. Сделать метод
ListBox для выбора значений из списка; параметры:
- передаваемый массив значений;
- флаг множественного выбора (Boolean);
- значение по умолчанию (при передаче пустой строки не подсвечивать значения);
Возвращать массив при выборе значения(й) и нажатии ОК; не давать нажать ОК если значения не выбраны. Возвращать Null при нажатии Cancel.
2. По аналогии с плагином
AutoComplete сделать спец. файлы для хранения параметров скриптов, т.к. скрипты из-за этого редактировать некорректно, мало того, что это неудобно - это дополнительный источник ошибок.
Необходимость этого давно назрела - есть множество скриптов, где нужен диалог с параметрами; сейчас в них выдаётся InputBox с передложением написать параметры вручную, или ещё хуже - эти параметры прописываются в скрипте жётско...
Например
в папке со скриптами создать папку Parameters, в которой вручную создавать файлы с тем же именем, что и файл скрипта, только с другим расширением, например *.param.
Если в Scripts-плагин добавить ещё один метод по вызову диалога с параметрами, автоматически отыскивающий необходимый файл и выводящий параметры из него в диалог, то такое решение позволит сократить количество скриптов... например один скрипт вставки даты - при его вызове автоматом открывается диалог параметров, взятых из спец.файла, ну и т.д...
Может пример по вставке даты не очень удачен, но
ExecConsole.js или
ExecTool.js - самое то.
Можно было бы перевести на эту технологию большинство скриптов.
Posted: Thu Mar 27, 2008 11:00 pm
by Instructor
Added: IsPluginRunning method.
Scripts plugin v3.0
Posted: Mon Apr 07, 2008 4:34 pm
by Instructor
Changed: plugin icon.
Added: GetClipboardText method.
Scripts plugin v3.1
Posted: Tue Apr 22, 2008 2:02 am
by Instructor
Changed: recompiled to support AkelPad 3.5.6.
Scripts plugin v3.2
Posted: Wed Jun 04, 2008 5:46 pm
by Instructor
Added: support for AkelPad 4.0.0.
Scripts plugin v3.3
Posted: Thu Jul 03, 2008 7:22 pm
by Instructor
Changed: AkelPad 3.6.0 required.
Added: support for column selection operations (AkelPad 4.x.x only).
Scripts plugin v3.5
Posted: Sat Aug 02, 2008 5:39 pm
by Vladimir
Такая проблема: при попытке вызвать любой скрипт выскакивает ошибка сервера сценариев Windows 800A01AD "Невозможно создание объекта сервером программирования объектов". В частности, при запуске Test.js в этом сообщении указывается "Строка: 16" и "Символ: 1". Система WinXP Pro SP3, MS Win Script 5.6. С чем может быть связано и как от этого избавиться?
Posted: Sun Aug 03, 2008 3:19 am
by Instructor
Vladimir
Scripts-Rus.txt:
*** Установка ***
1. Скопируйте "Plugs\*.*" в "{AkelPad}\AkelFiles\Plugs".
2. Запустите "{AkelPad}\AkelFiles\Plugs\Scripts-register.bat".
Posted: Sun Aug 03, 2008 8:40 am
by Vladimir
Спасибо!
Posted: Wed Aug 06, 2008 6:38 am
by Dystopian
Вместо
Scripts-register.bat и
Scripts-unregister.bat можно прямо из плагина использовать такие скрипты:
_Scripts-register.vbs
Code: Select all
Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists("..\Scripts.dll")) Then
WshShell.CurrentDirectory = WshShell.CurrentDirectory & "\.."
Else
WshShell.CurrentDirectory = WshShell.CurrentDirectory & "\AkelFiles\Plugs\"
End If
WshShell.Run("regsvr32 Scripts.dll")
_Scripts-unregister.vbs
Code: Select all
Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists("..\Scripts.dll")) Then
WshShell.CurrentDirectory = WshShell.CurrentDirectory & "\.."
Else
WshShell.CurrentDirectory = WshShell.CurrentDirectory & "\AkelFiles\Plugs\"
End If
WshShell.Run("regsvr32 /u Scripts.dll")
Каждый скрипт проверяет, откуда он запущен (из плагина или в проводнике), так что можно использовать их, как раньше Scripts-register.bat и Scripts-unregister.bat. Знак '_' в начале имени "поднимет" их в списке скриптов плагина.
Не возражаю, если файлы войдут в дистрибутив.
Posted: Mon Aug 25, 2008 2:17 pm
by Instructor
indvdum wrote:вот такая вот проблема: как выделить из %f в функции Exec() только имя файла без расширения?.. или вообще заменить расширение?..
Скрипт для Scripts плагина:
RunBaseName.js
Code: Select all
var AkelPad=new ActiveXObject("AkelPad.document");
var WshShell=new ActiveXObject("WScript.shell");
var fso=new ActiveXObject("Scripting.FileSystemObject");
var hMainWnd=AkelPad.GetMainWnd();
var pFileFullName=AkelPad.GetEditFile(0);
var pBaseName=fso.GetBaseName(pFileFullName);
if (hMainWnd)
{
WshShell.Run("notepad.exe " + pBaseName + ".txt", 1, true);
}
Кнопка Toobar плагина:
Code: Select all
-"Запустить файл" Call("Scripts::Main", 1, "RunBaseName.js", "", 0) Icon(0)
Posted: Tue Aug 26, 2008 10:25 pm
by indvdum
всё, настроил акелпад как среду разработки на tasm

пришлось правда переписать вышеприведенный скрипт на vbs, на js почему-то ошибки были с командной строкой.. да еще не знаю какой есть аналог на js функции Left() на vbs..
в частности для линковки tlink на vbs:
Code: Select all
Set AkelPad=CreateObject("AkelPad.document")
Set WshShell=CreateObject("WScript.shell")
Set fso=CreateObject("Scripting.FileSystemObject")
hMainWnd=AkelPad.GetMainWnd()
pFileName=AkelPad.GetEditFile(0)
pExt=fso.GetExtensionName(pFileName)
if Lcase(pExt)="asm" then
pFolder=fso.GetParentFolderName(pFileName)
pFileName=left(pFileName,len(pFileName)-4)+".obj"
command="cd " + chr(34) + pFolder + chr(34) + " && c:\tasm\bin\tlink.exe /v " + pFileName
if hMainWnd <> 0 then WshShell.Run("%COMSPEC% /K " + command)
else WScript.Echo "Редактируемый документ имеет расширение, отличное от" + chr(34) + ".asm" + chr(34)
end if
еще вот такой вопрос (не знаю вообще-то сюда ли по нему надо обращаться..) - в приведенном коде если использовать конструкцию
то второе условие никак не обрабатывается.. приходится использовать вложенные if.. непонятно почему так происходит
Posted: Thu Aug 28, 2008 6:40 am
by VladSh
indvdum
Скрипты собираем
здесь.
Posted: Fri Aug 29, 2008 7:36 am
by VladSh
Dystopian wrote:Вместо Scripts-register.bat и Scripts-unregister.bat можно прямо из плагина использовать такие скрипты:
_Scripts-register.vbs
...
_Scripts-unregister.vbs
...
Я делаю проще - в Главном меню создал свою менюху и прописал туда 2 строки:
Code: Select all
"Scripts-register.bat" Exec("%a\AkelFiles\Plugs\Scripts-register.bat", "%a\AkelFiles\Plugs")
"Scripts-unregister.bat" Exec("%a\AkelFiles\Plugs\Scripts-unregister.bat", "%a\AkelFiles\Plugs")
Всё работает.