Показать полную графическую версию : Авто установка Punto Switcher [все версии]
Morpheus
02-11-2011, 03:02
Приветы!
Некоторые настройки (списки автозамены, например) оказываются в C:\Users\user\AppData\Roaming\Yandex\Punto Switcher\3.1
Требуется их настроить один раз и запихнуть в инсталлер (NSIS). Как это сделать правильно? За основу взял #78 (http://forum.oszone.net/post-1340924-78.html).
Требуется их настроить один раз и запихнуть в инсталлер »
Если NSIS не самоцель, то может подойдет это (http://forum.oszone.net/thread-64397.html)?
Mancoffee
17-12-2011, 09:16
Как собрать свой установщик с настройками из папки roaming? И как вообще это правильно сделать не долго думая (имею ввиду не NSIS с изучение кодов и прочего).
Вот пример как я обрабатывал список программ-исключений Punto Switcher 3.2 (3.0 хранит списки программ-исключений по-другому).
Добавлял туда свою программу. Punto Switcher сначала закрывается, если он запущен.
Предварительно надо установить XML-plugin для NSIS - http://nsis.sourceforge.net/XML_plug-in
!include "XML.nsh"
!include "LogicLib.nsh"
!include "WinVer.nsh"
!include "WordFunc.nsh"
!include WinMessages.nsh
...
!define WND_TITLE "Punto Switcher Main Window"
!define TO_MS 2000
!define SYNC_TERM 0x00100001
!macro TerminatePuntoSwitcher
Push $0 ; window handle
Push $1
Push $2 ; process handle
DetailPrint "Закрываем Пунто Свичер"
FindWindow $0 '' '${WND_TITLE}'
IntCmp $0 0 done
System::Call 'user32.dll::GetWindowThreadProcessId(i r0, *i .r1) i .r2'
System::Call 'kernel32.dll::OpenProcess(i ${SYNC_TERM}, i 0, i r1) i .r2'
SendMessage $0 ${WM_CLOSE} 0 0 /TIMEOUT=${TO_MS}
System::Call 'kernel32.dll::WaitForSingleObject(i r2, i ${TO_MS}) i .r1'
IntCmp $1 0 close
; MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION "Жестко закрываем" /SD IDYES IDYES terminate IDNO close
; System::Call 'kernel32.dll::CloseHandle(i r2) i .r1'
; Quit
terminate:
System::Call 'kernel32.dll::TerminateProcess(i r2, i 0) i .r1'
close:
System::Call 'kernel32.dll::CloseHandle(i r2) i .r1'
done:
Pop $2
Pop $1
Pop $0
!macroend
...
Function .onInstSuccess
...
!insertmacro TerminatePuntoSwitcher
${xml::LoadFile} "$PROFILE\AppData\Roaming\Yandex\Punto Switcher\User Data\preferences.xml" $0
${If} $0 == -1
${xml::LoadFile} "$PROFILE\Application Data\Yandex\Punto Switcher\User Data\preferences.xml" $0
${EndIf}
${If} $0 = 0 ; если загрузили настройки
${xml::GotoPath} "/PuntoSwitcherSettings/ProgramsExceptions" $0
${If} $0 == 0
${xml::GetText} $0 $1
${If} $0 == ''
${xml::SetText} "$INSTDIR\Stamina.exe" $1
${xml::SaveFile} "" $0
${Else}
${WordFind} $0 "$INSTDIR\Stamina.exe" "E#" $R1
IfErrors 0 end ; если ошибка (то есть не нашли), то переходим к след. строке, а иначе к end:
${xml::SetText} "$0,$INSTDIR\Stamina.exe" $1
${xml::SaveFile} "" $0
end:
${EndIf}
${EndIf}
${EndIf}
${xml::Unload}
...
FunctionEnd
Вариант 2
Вариант с импортом настроек от ShaddyR, применим и к оригинальному дистрибутиву:
-устанавливаем Punto (сборку или оригинал - не важно, но для примера рассмотрим предлагаемую сборку PuntoSwitcher31172.exe)
-запускаем, настраиваем так, как нужно.
-экспортируем ветку [HKEY_CURRENT_USER\SOFTWARE\Yandex\Punto Switcher\3.1], в файл sett.reg, кладем рядом с дистрибутивом Punto. »
В версии 3.2 настроек в реестре гораздо меньше хранится, если не сказать, что их совсем нет. При этом у меня осталась ветка 3.1, но, может, есть какой-то другой способ экспорта настроек из реестра?
wolkow70
17-09-2012, 19:29
Новый вариант сборки для интерактивной и автоматической установки Punto Switcher 3.2.7.84
Файлы preferences.xml для 32 и 64 битных систем встроены в инсталлятор (в настройках включены флаги, отключен показ советов).
В процессе установки происходит парсинг эталонных путей к звуковым файлам в файле preferences.xml в зависимости от реального пути установки программы.
Ключ тихой установки: /S
Дополнительные ключи автоустановки:
Ярлык на Рабочий стол: /T
Ярлык в Панель быстрого запуска: /Q
Однопользовательская установка (хранение настроек в папке с программой): /A
Запуск программы сразу после завершения установки: /R
Ключи можно комбинировать, например :
PUNTOSWR.exe /S /A /Q/ T /R
wolkow70
19-09-2012, 13:45
Обновил сборку (http://forum.oszone.net/post-1632511-90.html) для автоматической и интерактивной установки Punto Switcher до версии 3.2.8.94
на autoIt кто нибудь пробовал?
в едиторе все срабатывает, а после компиляции ощущение, что после нажатия УСТАНОВКА сразу срабатывает следующий winwait с текстом кнопки ГОТОВО - ну как так то
wolkow70
27-12-2012, 22:44
Обновил свою сборку (http://forum.oszone.net/post-1632511-90.html) для автоматической и интерактивной установки Punto Switcher версии 3.2.8.94 в связи с тихим обновлением программы на сайте разработчика.
Значительные улучшения скрипта установки.
Ссылка для скачивания:
http://rusfolder.com/34319279
wolkow70
11-07-2013, 06:37
Обновил свою сборку (http://forum.oszone.net/post-1632511-90.html) для автоматической и интерактивной установки Punto Switcher версии 3.2.9.240.
Ссылка для скачивания:http://rusfolder.com/37195326
wolkow70, а как изменить настройки?необходимо убрать флаги, убрать подсказки и полезные советы
wolkow70
20-11-2013, 11:04
wolkow70, а как изменить настройки?необходимо убрать флаги, убрать подсказки и полезные советы »
Настройки прописаны в XML-файлах, никак их не убрать, только заменить файлы. Подсказки и полезные советы у меня и так убраны в настройках.
_arahnid_
27-05-2014, 10:14
Автоустановка PuntoSwitcher из оригинального дистрибутива на базе моего скрипта:
качаем скрипт Setup_My_Soft.rar http://forum.oszone.net/thread-279429.html
распаковываем и переименовываем например PuntoSwitcher_Inst.exe
запускаем
рядом кладем дистрибутив PuntoSwitcherSetup.exe
редактируем получившийся ini файл следующим образом:[INFO]
about=PuntoSwitcher v3.3.1
category=Офисные программы
[RUN]
1=PuntoSwitcherSetup.exe
2=@TempDir\ps\PuntoSwitcher.msi
[PARAM]
1=/extract @TempDir\ps\
2=/passive
[File_Del]
1=@ProgramsCommonDir\Яндекс\Punto Switcher\Новые возможности.lnk
[Dir_Move_To_Category]
1=@ProgramsCommonDir\Яндекс\Punto Switcher\
[Dir_Del]
1=@TempDir\ps\
2=@ProgramsCommonDir\Яндекс\
Вот и все, комплект автоустановки готов, теперь для того чтобы установить PuntoSwitcher нужно запустить PuntoSwitcher_Inst.exe с правами администратора.
кстати, когда выйдет свежая версия, просто скачайте дистриб и замените его в вашей папке.
PuntoSwitcherSetup.exe /quiet /norestart
Версия 3.4.9.414 рулит.
У меня скачать
‹‹‹Скачать››› (https://yadi.sk/d/1mI2AqBSmSkfp)
в лом было делать. Винраром сделал для себя. Установка скрытая.
PS. Не ставить после новых версий. Там путь установки изменился.
wolkow70
27-06-2016, 09:00
Обновил свою сборку (http://forum.oszone.net/post-1632511-90.html) для автоматической и интерактивной установки Punto Switcher версии 4.2.6 Build 1275 Final .
Ссылка для скачивания:http://rusfolder.com/45111876
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.