Установщик nsis автоматически выходит / закрывается автоматически, я использую функции pre и show для отображения страницы многоязыкового каталога - PullRequest
0 голосов
/ 03 мая 2011

Я собираю установщик, используя nsis.я добавил 5 кнопок, используя хакер ресурсов в диалоге страницы каталога установщика.Также я определил эти функции:

      !define IDC_BUTTON_CDRIVEPATH         1200
      !define IDC_BUTTON_DDRIVEPATH         1201
      !define IDC_BUTTON_EDRIVEPATH         1202
      !define IDC_BUTTON_FDRIVEPATH         1203
      !define IDC_BUTTON_GDRIVEPATH         1204

!define MUI_CUSTOMFUNCTION_GUIINIT myGuiInit

  !insertmacro MUI_PAGE_WELCOME
  !insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\Modern UI\licensefile.txt"

    !define MUI_PAGE_CUSTOMFUNCTION_PRE DirectoryPre
    !define MUI_PAGE_CUSTOMFUNCTION_SHOW DirectoryShow

      !insertmacro MUI_PAGE_DIRECTORY

      !insertmacro MUI_PAGE_COMPONENTS
      !insertmacro MUI_PAGE_INSTFILES
      !insertmacro MUI_PAGE_FINISH

Function DirectoryShow

  GetFunctionAddress $R0 DDRIVEPATH
  ButtonEvent::AddEventHandler ${IDC_BUTTON_DDRIVEPATH} $R0
FunctionEnd 

Function DirectoryPre

  GetFunctionAddress $R6 EDRIVEPATH
  ButtonEvent::AddEventHandler ${IDC_BUTTON_EDRIVEPATH} $R6

line 1--      GetFunctionAddress $R7 FDRIVEPATH
line 2--      ButtonEvent::AddEventHandler ${IDC_BUTTON_FDRIVEPATH} $R7

line 3--      GetFunctionAddress $R8 GDRIVEPATH
line 4--      ButtonEvent::AddEventHandler ${IDC_BUTTON_GDRIVEPATH} $R8

FunctionEnd

Когда я не удаляю два обработчика FDRIVEPATH & GDRIVEPATH , т.е. когда я не удаляю строки - LINE 1,2,3,4, затем, ------------- когда я перехожу на страницу КОМПОНЕНТОВ, и нажимаю кнопку НАЗАДчтобы вернуться на страницу СПРАВОЧНИК, установщик автоматически завершит работу.я не знаю почему это происходит.пожалуйста помоги?Я застрял с этим с двух дней.

НО, когда я удаляю два обработчика FDRIVEPATH & GDRIVEPATH , то есть когда я удаляю строки - LINE 1,2,3,4, тоУстановщик работает правильно.

Мне нужны все обработчики для этих пяти кнопок.я не хочу удалять ни одного из них.

СЛЕДУЮЩИЙ ДИАЛОГ МОЕЙ СТРАНИЦЫ КАТАЛОГА: --------- enter image description here

Ответы [ 2 ]

1 голос
/ 23 мая 2011

Используйте ComboBox или ListBox, который будет заполнен всеми буквами дисков для экономии места.

ComboBox, созданный с помощью nsDialogs:

Var CB_Buttons

${NSD_CreateComboBox} 0 20 32% 100 ""
Pop $CB_Buttons
   ${NSD_CB_AddString} $CB_Buttons "A:\" 
   ${NSD_CB_AddString} $CB_Buttons "B:\"
   ${NSD_CB_AddString} $CB_Buttons "C:\"
etc. 
0 голосов
/ 26 мая 2011

В КНОПКОМ СОБЫТИИ У ПЛАГИНА БЫЛА БАГ, КОТОРАЯ БЫЛА ИСПРАВЛЕНА ПЛАГИН-РАЗРАБОТЧИКОМ, г-н Афроу, Великобритания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...