2011-05-03 60 views
0

我使用NSIS建立一個安裝程序。我在安裝程序的目錄頁面對話框中使用資源黑客添加了5個按鈕。還我已經定義了以下功能:NSIS安裝自動退出/自動關閉,我使用前和放映功能顯示目錄MUI頁

 !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,即。當我不刪除行 - 行1,2,3,4,然後,-------------當我到了組件頁面,然後按返回按鈕回到目錄頁面,然後安裝程序自動退出。我不知道爲什麼會發生。?請幫忙?自兩天以來我一直堅持着。

但是,當我除去兩個處理程序FDRIVEPATH & GDRIVEPATH,即。當我刪除行 - 行1,2,3,4,然後,安裝程序正常運行。

我想這五個按鈕,所有的處理程序。我不想刪除它們中的任何一個。

以下是我的目錄頁對話框:--------- enter image description here

+0

這是怎麼回事規模?可以有26個驅動器號... – Anders 2011-05-03 12:09:27

+0

@Anders:先生,我不明白你說什麼意思?請詳細說明。 – sqlchild 2011-05-03 13:15:32

+0

我只想給F和G的選項,但至少它應該工作?但它不 – sqlchild 2011-05-03 13:16:06

回答

1

使用組合框或列表框,將充滿所有驅動器字母,以節省空間。與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

按鈕事件PLUGIN是有一個BUG,已經修正了插件開發者,Afrow英國先生。