[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Andrey_A, simup, ХарВик, chip642  
DeleteRegAkelpad.vbs - Удаление раздела Akelsoft из реестра
Andrey_AДата: Вторник, 20.05.2014, 09:48 | Сообщение № 1
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Удаление раздела Akelsoft из реестра

Доступно только для пользователей


 
Andrey_AДата: Вторник, 20.05.2014, 09:54 | Сообщение № 2
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Не секрет что AkelPad и ряд скриптов оставляют записи в реестре, для удаления и создан этот скрипт. Чтобы автоматически при выходе удалялись раздел и все его записи, нужен 2-й скрипт, который:
1. Закрывал бы AkelPad
2. Запускал скрипт удаления раздела в реестре

Вот он)))

Закрывает AkelPad и запускает скрипт DeleteRegAkelpad.vbs

Доступно только для пользователей

Кнопка для запуска:

Код
-"Выход с очисткой реестра от записей AkelPad" Call("Scripts::Main", 1, "ExitRunScriptRegDelete.vbs") Icon("%a\AkelPadImage.dll",388)




 
Andrey_AДата: Суббота, 24.05.2014, 09:23 | Сообщение № 3
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Нашёлся ещё один вариант, скрипт который отслеживает закрытие программы и при выходе запускает то, что нам нужно в данном случае скрипт DeleteRegAkelpad.vbs

Для запуска вместе с AkelPad необходимо в AkelPad.ini в [Options] в ключе CmdLineBegin прописать:
Код
CmdLineBegin= /Call("Scripts::Main", 1, "ExitRun.vbs")


Выполняет запуск приложений по закрытию AkelPad

Доступно только для пользователей


 
LonerDДата: Воскресенье, 19.10.2014, 18:33 | Сообщение № 4
Генерал-полковник

На сайте с: 24.03.2012
Сообщений: 106
Награды: 3
Репутация: 7
Полезно. Но в одном случае простым Alt+F4 не закрыть программу, в другом случае - с самого запуска лишний скрипт висит в автозагрузке.
А через ключ CmdLineEnd не получится оформить очистку? Или Акелпад сорит в реестре уже после того как отработает этот ключ?
Что если приведённый выше скрипт DeleteRegAkelpad.vbs запускать через CmdLineEnd ?


DreamLair.net
 
Andrey_AДата: Воскресенье, 19.10.2014, 22:39 | Сообщение № 5
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Этот скрипт просто костыль. У меня прописан для теста, но чем больше я им пользуюсь, тем больше он мне не нравится -а именно все шаблоны поисков теряются при выключении или перезагрузке - одно дело для портабельности, другое дело для себя.
Просили много раз автора AkelPad сделать записи не через реестр, а через файл... но ответа я не видел
А тестировать то, чего нет и смысла не имеет.


 
LonerDДата: Понедельник, 20.10.2014, 05:51 | Сообщение № 6
Генерал-полковник

На сайте с: 24.03.2012
Сообщений: 106
Награды: 3
Репутация: 7
А вариант по аналогии с PortableApps не сработает? (только без внешнего ланчера)
При закрытии Акелпада запускаем скрипт, прописанный в CmdLineEnd - все записи реестра экспортируем в reg-файл.
При открытии Акелпада запускаем скрипт, прописанный в CmdLineBegin и импортируем эти записи реестра.
Только я не знаю на каком этапе срабатывают эти ключи - до чтения/записи реестра или после.


DreamLair.net
 
Andrey_AДата: Понедельник, 20.10.2014, 14:05 | Сообщение № 7
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Код
При закрытии Акелпада запускаем скрипт, прописанный в CmdLineEnd

ключ CmdLineEnd не работает при закрытии - этот ключ работает при запуске, после открытия всех вкладок, попробуй:
Код

CmdLineEnd=/Call("Scripts::Main", 1, "InsertDate.js", "") /C /B /L


В акеле нет ключа, который отрабатывал бы при закрытии, поэтому и сделан этот скрипт.

Для сохранения информации можно попробовать в этот скрипт добавить сохранение и написать ещё один для возврата.


 
Andrey_AДата: Вторник, 21.10.2014, 21:10 | Сообщение № 8
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Ниже прилагаются 2 скрипта:

1. изменённый DeleteRegAkelpad.vbs
при закрытии AkelPad он сначала экспортирует ветку реестра в файл:
Код
...\AkelFiles\Regs\BackupAkelReg.reg

а затем удаляет раздел
(для этого необходим скрипт ExitRun.vbs - Выполняет запуск приложений по закрытию AkelPad)

2. ImportRegistryAkelPad.vbs - при запуске AkelPad импортирует из файла BackupAkelReg.reg

Необходимо их прописать в AkelPad.ini в секции [Options] в ключе CmdLineBegin

у меня в AkelPad Image запись такая:

Код
CmdLineBegin=/Exec(`"%%WINDIR%\System32%\wscript.exe" "%a\AkelFiles\Plugs\Scripts\ImportRegAkelPad.vbs"`) /Call("Scripts::Main", 1, "LineBoardRClickPanel.js","LINEBOARDBOOKMARKS") /Call("Scripts::Main", 1, "SwitchingRuler.vbs", `"0" "1"`) /Call("Scripts::Main", 1, "ExitRun.vbs") /Call("Scripts::Main", 1, "RunExitSpecChar.vbs")


Так что вроде обошлись без лаунчеров - все сохраняется и восстанавливается, хотя могут быть нюансы - тестировать надо...

[plus]
А нюансы уже выявились - это хорошо работает при закрытии и через какое-то время открытии, но если мне нужно быстро перезапустить акел с помощью утилиты или скрипта, к примеру:

Код
-"Рестарт AkelPad" Call("Scripts::Main", 1, "TCIMG.vbs", `"resrt=#akelname#||1"`) Icon("%a\AkelPadImage.dll",45)


То это все не успеет сработать... пока не придумал как обойти это...
[/plus]


 
Andrey_AДата: Вторник, 21.10.2014, 21:11 | Сообщение № 9
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Экспорт раздела реестра Akelsoft и удаление раздела из реестра

Доступно только для пользователей


 
Andrey_AДата: Вторник, 21.10.2014, 21:13 | Сообщение № 10
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Импорт ветки реестра раздела Akelsoft из файла

Доступно только для пользователей


 
Andrey_AДата: Вторник, 21.10.2014, 23:21 | Сообщение № 11
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Спустя 2 часа))) придумал. Пришлось изменить все 3 скрипта:
Выкладываю их отдельно, чтобы была возможность вернуться к прежним версия (если что)

1. ExitRun.vbs
+ Добавлена передача в скрипт DeleteRegAkelpad.vbs имени программы AkelPad.exe
Этим решается проблема, когда переименовывают exe'шник

2. DeleteRegAkelpad.vbs
+ Добавлена пауза - по умолчанию скрипт начинает работать через 10 секунд
+ Добавлена проверка: если процесс AkelPad.exe существует, то ничего не делается (не создается бэкап раздела и не удаляется сам раздел)
Этим решается проблема быстрой перезагрузки программы

3. ImportRegAkelPad.vbs
+ Добавлена проверка: если раздел существует, то НЕ производится импорт
Этим решается проблема быстрой перезагрузки программы, когда нужно сохранить все шаблоны поиска (которые акел прописывает в реестре)...

Т.е. если пользователь точно вышел из AkelPad, то через 10 сек. сохраняется раздел реестра и удаляется, при запуске AkelPad сохранённый раздел вносится в реестр...

Если же пользователю необходимо перезагрузить быстро сессию..., то всё остаётся как есть

Всем этим я надеюсь, что исчерпывающе решается задача портабельности и сохранения настроек реестра...


 
Andrey_AДата: Вторник, 21.10.2014, 23:22 | Сообщение № 12
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Выполняет запуск приложений по закрытию AkelPad

Доступно только для пользователей


 
Andrey_AДата: Вторник, 21.10.2014, 23:23 | Сообщение № 13
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Экспорт раздела реестра Akelsoft и удаление раздела из реестра

Доступно только для пользователей


 
Andrey_AДата: Вторник, 21.10.2014, 23:24 | Сообщение № 14
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
Импорт ветки реестра раздела Akelsoft из файла

Доступно только для пользователей


 
LonerDДата: Четверг, 30.10.2014, 04:09 | Сообщение № 15
Генерал-полковник

На сайте с: 24.03.2012
Сообщений: 106
Награды: 3
Репутация: 7
Попробовал, понравилось. Буду тестировать дальше.
Нашёл маленькую оплошность - в сборку Image один файл не попал :--(
Возникла идея (не знаю, насколько она реализуема и реально ли оно нужно): после экспорта в reg-файле заменять пути к файлам, находящимся на одном диске с Акелпадом (причём даже не обязательно в каталоге с Акелпадом - можно ведь определить букву диска) на относительные. Смысл в том, что рабочие файлы переносятся на флешке или внешнем жёстком диске, который при подключении на разных компьютерах имеет разные буквы дисков.


DreamLair.net
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Интеллектуальные права и отказ от ответственности