Выкладываю на общий суд свой подход к сборке этой программы.
Собственно, цель закрывать какие-либо панели я не ставил, я никогда не отключаю их, и потому дистрибутив вышел таким:
- никаких Yandex-панелей;
- по-умолчанию автопереключение отключено;
- включено дополнительное переключение раскладки по правому CTRL;
- включена индикация раскладки национальными флагами.
Скачать
Собрано на NSIS, тихая установка с ключом /S.
Немного расскажу, как сделать свою сборку этой программы, со своими настройками.
1. Поместите файлы программы в папку, например в d:\ps. Файлы берем из установленного приложения.
2. Исправьте строку
!define pkgdir "d:\package" на
!define pkgdir "d:". Скрипт ищет файлы для упаковки по принципу ${pkgdir}\ps
3. Настройте программу так, как вам нравиться. Экспортируйте ветку [HKEY_CURRENT_USER\Software\Yandex\Punto Switcher\3.1] в файл
d:\ps\ps.reg
4.
Скомпильте этот скрипт:
Код:
!define PRODUCT_NAME "Punto Switcher"
!define PRODUCT_VERSION "3.1.1.72"
!define pkgdir "d:\package"
; MUI 1.67 compatible ------
!include "MUI.nsh"
SetCompressor lzma
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
; Installer pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
; Uninstaller pages
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
;Lang
!insertmacro MUI_LANGUAGE "Russian"
; MUI end ------
Name "${PRODUCT_NAME}"
Caption "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}.exe"
InstallDir "$PROGRAMFILES\Punto Switcher\"
ShowInstDetails show
ShowUnInstDetails show
BrandingText "By Winreview.ru"
Section "MainSection" SEC01
SetOutPath "$INSTDIR"
File /r "${pkgdir}\punto\"
WriteUninstaller "$INSTDIR\uninst.exe"
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\Punto Switcher"
CreateShortCut "$SMPROGRAMS\Punto Switcher\Punto Switcher.lnk" "$INSTDIR\Punto.exe" "" "$INSTDIR\Punto.exe" 0
CreateShortCut "$SMPROGRAMS\Punto Switcher\Настройка раскладок.lnk" "$INSTDIR\layouts.exe" "" "$INSTDIR\layouts.exe" 0
CreateShortCut "$SMPROGRAMS\Punto Switcher\Справка по программе.lnk" "$INSTDIR\ps.chm"
CreateShortCut "$SMPROGRAMS\Punto Switcher\Удалить.lnk" "$INSTDIR\uninst.exe" "" "$INSTDIR\uninst.exe" 0
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Punto Switcher" "$INSTDIR\Punto.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayName" "$(^Name)"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayVersion" "${PRODUCT_VERSION}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayIcon" "$INSTDIR\Punto.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "UninstallString" "$INSTDIR\uninst.exe"
ExecWait "regedit.exe /S $\"$INSTDIR\ps.reg$\""
Delete "$INSTDIR\ps.reg"
SectionEnd
Section Uninstall
RMDir /r "$INSTDIR"
SetShellVarContext all
RMDir /r "$SMPROGRAMS\Punto Switcher\"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "Punto Switcher"
SetAutoClose true
SectionEnd
Baw17, может, добавить в шапку ещё и описание программы ? Такое, например:
Punto Switcher - автоматический переключатель раскладки клавиатуры. Сейчас программой владеет Yandex, под их брэндом выпускаются новые версии. Разработчик позиционирует функционал так:
Цитата:
Когда вы забываете переключить раскладку с русской на английскую и наоборот, то вместо «Windows» получается «Цштвщцы», а вместо «молоко» — «vjkjrj». Punto Switcher это исправит — раскладка будет переключаться автоматически.
|