| View previous topic :: View next topic |
| Author |
Message |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4650
|
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2510 Location: Киев, Русь
|
Posted: Tue Mar 25, 2008 1:07 pm Post subject: Ещё одна мега-идея! |
|
|
Предлагаю:
1. Сделать метод ListBox для выбора значений из списка; параметры:
- передаваемый массив значений;
- флаг множественного выбора (Boolean);
- значение по умолчанию (при передаче пустой строки не подсвечивать значения);
Возвращать массив при выборе значения(й) и нажатии ОК; не давать нажать ОК если значения не выбраны. Возвращать Null при нажатии Cancel.
2. По аналогии с плагином AutoComplete сделать спец. файлы для хранения параметров скриптов, т.к. скрипты из-за этого редактировать некорректно, мало того, что это неудобно - это дополнительный источник ошибок.
Необходимость этого давно назрела - есть множество скриптов, где нужен диалог с параметрами; сейчас в них выдаётся InputBox с передложением написать параметры вручную, или ещё хуже - эти параметры прописываются в скрипте жётско...
Например в папке со скриптами создать папку Parameters, в которой вручную создавать файлы с тем же именем, что и файл скрипта, только с другим расширением, например *.param.
Если в Scripts-плагин добавить ещё один метод по вызову диалога с параметрами, автоматически отыскивающий необходимый файл и выводящий параметры из него в диалог, то такое решение позволит сократить количество скриптов... например один скрипт вставки даты - при его вызове автоматом открывается диалог параметров, взятых из спец.файла, ну и т.д...
Может пример по вставке даты не очень удачен, но ExecConsole.js или ExecTool.js - самое то.
Можно было бы перевести на эту технологию большинство скриптов.
Last edited by VladSh on Sat Apr 18, 2009 11:51 am; edited 1 time in total |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4650
|
Posted: Thu Mar 27, 2008 11:00 pm Post subject: |
|
|
Added: IsPluginRunning method.
Scripts plugin v3.0 |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4650
|
Posted: Mon Apr 07, 2008 4:34 pm Post subject: |
|
|
Changed: plugin icon.
Added: GetClipboardText method.
Scripts plugin v3.1 |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4650
|
Posted: Tue Apr 22, 2008 2:02 am Post subject: |
|
|
Changed: recompiled to support AkelPad 3.5.6.
Scripts plugin v3.2 |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4650
|
Posted: Wed Jun 04, 2008 5:46 pm Post subject: |
|
|
Added: support for AkelPad 4.0.0.
Scripts plugin v3.3 |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4650
|
Posted: Thu Jul 03, 2008 7:22 pm Post subject: |
|
|
Changed: AkelPad 3.6.0 required.
Added: support for column selection operations (AkelPad 4.x.x only).
Scripts plugin v3.5 |
|
| Back to top |
|
 |
Vladimir
Joined: 02 Aug 2008 Posts: 2 Location: Ukraine
|
Posted: Sat Aug 02, 2008 5:39 pm Post subject: |
|
|
| Такая проблема: при попытке вызвать любой скрипт выскакивает ошибка сервера сценариев Windows 800A01AD "Невозможно создание объекта сервером программирования объектов". В частности, при запуске Test.js в этом сообщении указывается "Строка: 16" и "Символ: 1". Система WinXP Pro SP3, MS Win Script 5.6. С чем может быть связано и как от этого избавиться? |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4650
|
Posted: Sun Aug 03, 2008 3:19 am Post subject: |
|
|
Vladimir
Scripts-Rus.txt:
| Quote: | *** Установка ***
1. Скопируйте "Plugs\*.*" в "{AkelPad}\AkelFiles\Plugs".
2. Запустите "{AkelPad}\AkelFiles\Plugs\Scripts-register.bat". |
|
|
| Back to top |
|
 |
Vladimir
Joined: 02 Aug 2008 Posts: 2 Location: Ukraine
|
Posted: Sun Aug 03, 2008 8:40 am Post subject: |
|
|
| Спасибо! |
|
| Back to top |
|
 |
Dystopian
Joined: 08 Jan 2008 Posts: 14
|
Posted: Wed Aug 06, 2008 6:38 am Post subject: |
|
|
Вместо Scripts-register.bat и Scripts-unregister.bat можно прямо из плагина использовать такие скрипты:
_Scripts-register.vbs
| Code: | 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: | 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. Знак '_' в начале имени "поднимет" их в списке скриптов плагина. Не возражаю, если файлы войдут в дистрибутив. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4650
|
Posted: Mon Aug 25, 2008 2:17 pm Post subject: |
|
|
| indvdum wrote: | | вот такая вот проблема: как выделить из %f в функции Exec() только имя файла без расширения?.. или вообще заменить расширение?.. |
Скрипт для Scripts плагина:
RunBaseName.js
| Code: | 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: | | -"Запустить файл" Call("Scripts::Main", 1, "RunBaseName.js", "", 0) Icon(0) |
|
|
| Back to top |
|
 |
indvdum
Joined: 25 Aug 2008 Posts: 16
|
Posted: Tue Aug 26, 2008 10:25 pm Post subject: |
|
|
всё, настроил акелпад как среду разработки на tasm пришлось правда переписать вышеприведенный скрипт на vbs, на js почему-то ошибки были с командной строкой.. да еще не знаю какой есть аналог на js функции Left() на vbs..
в частности для линковки tlink на vbs:
| Code: |
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
|
еще вот такой вопрос (не знаю вообще-то сюда ли по нему надо обращаться..) - в приведенном коде если использовать конструкцию
| Code: | | if условие1 and условие2 |
то второе условие никак не обрабатывается.. приходится использовать вложенные if.. непонятно почему так происходит |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2510 Location: Киев, Русь
|
Posted: Thu Aug 28, 2008 6:40 am Post subject: |
|
|
indvdum
Скрипты собираем здесь. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2510 Location: Киев, Русь
|
Posted: Fri Aug 29, 2008 7:36 am Post subject: |
|
|
| Dystopian wrote: | Вместо Scripts-register.bat и Scripts-unregister.bat можно прямо из плагина использовать такие скрипты:
_Scripts-register.vbs
...
_Scripts-unregister.vbs
... |
Я делаю проще - в Главном меню создал свою менюху и прописал туда 2 строки:
| Code: | "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") |
Всё работает. |
|
| Back to top |
|
 |
|