我想要做的是讓用戶瀏覽文件系統的某個特定值,如果文件名匹配則繼續。 具體而言,我希望用戶找到那裏的PHP可執行文件,也是我想的目錄(不知道我將如何從完整路徑中提取目錄)。NSIS選擇一個文件
-1
A
回答
4
這可以通過自定義nsDialogs頁面和nsDialogs :: SelectFileDialog很容易地實現,這是專門爲此目的而設計的。
http://nsis.sourceforge.net/Docs/nsDialogs/Readme.html#ref-selectfiledialog
8
您可以用自定義頁面做到這一點:
!include nsDialogs.nsh
!include FileFunc.nsh
Page Custom MyPageCreate MyPageLeave
Var PhpPath
Function MyPageLeave
${NSD_GetText} $PhpPath $0
${GetFileName} $0 $1
${IfNot} ${FileExists} $0
${OrIf} $1 != "php.exe"
MessageBox mb_iconstop "You must locate php.exe to continue!"
Abort
${Else}
#php path is in $0, do something with it...
${EndIf}
FunctionEnd
Function MyPageComDlgSelectPHP
Pop $0
${NSD_GetText} $PhpPath $0
nsDialogs::SelectFileDialog open $0 "php.exe|php.exe"
Pop $0
${If} $0 != ""
${NSD_SetText} $PhpPath $0
${EndIf}
FunctionEnd
Function MyPageCreate
nsDialogs::Create 1018
Pop $0
${NSD_CreateText} 0 5u -25u 13u "$ProgramFiles\PHP\php.exe"
Pop $PhpPath
${NSD_CreateBrowseButton} -23u 4u 20u 15u "..."
Pop $0
${NSD_OnClick} $0 MyPageComDlgSelectPHP
nsDialogs::Show
FunctionEnd
,或者您可以使用目錄頁:
!include LogicLib.nsh
Var PhpPath
Function .onInit
StrCpy $PhpPath "$ProgramFiles\PHP" ; Default (You could probably do better by checking the registry)
FunctionEnd
PageEx Directory
DirVar $PhpPath
DirVerify leave
PageCallbacks "" PhpPageShow PhpPageLeave
DirText "Select PHP folder" "PHP Folder" "" "Select PHP folder"
PageExEnd
Function PhpPageShow
;Hide space texts
FindWindow $0 "#32770" "" $HWNDPARENT
GetDlgItem $1 $0 0x3FF
ShowWindow $1 0
GetDlgItem $1 $0 0x400
ShowWindow $1 0
FunctionEnd
Function PhpPageLeave
GetInstDirError $0
${If} $0 <> 0
${OrIfNot} ${FileExists} "$PhpPath\php.exe"
MessageBox mb_iconstop "You must locate the php folder to continue!"
Abort
${EndIf}
FunctionEnd
相關問題
- 1. NSIS選擇頁面
- 2. 如何檢查在NSIS中是否選擇了一個組件?
- 3. NSIS - 單選框的標籤不匹配的一個選擇
- 4. 選擇一個文件夾或文件
- 5. 基於語言選擇的NSIS許可證文件
- 6. NSIS - 驗證單選按鈕選擇
- 7. NSIS選擇選項奇數行爲
- 8. NSIS - 刪除除一個文件以外的所有文件
- 9. 排除一個文件中NSIS文件複製命令(遞歸)
- 10. NSIS - 單選按鈕來選擇安裝許多程序之一
- 11. OpenFileDialog預先選擇一個文件
- 12. 隨機選擇一個文件
- 13. POST立即選擇後一個文件
- 14. Java選擇一個文件位置
- 15. 八度選擇一個文件?
- 16. 只選擇一個JSON文件
- 17. 用SaveFileDialog選擇一個文件夾
- 18. 請選擇一個文件Codeigniter錯誤
- 19. 使用宏來選擇一個文件
- 20. 崇高文本2代替多重選擇從多個選擇一個文件在另一個文件
- 21. 用一個文件元素上載多個文件(沒有多個選項)。並一次選擇一個文件
- 22. NSIS - 我如何在.txt文件上寫入用戶選擇的選項
- 23. VB.net在一個文件夾中選擇文件和文件夾
- 24. NSIS配置文件
- 25. NSIS語言選擇對話框頂部
- 26. 選擇多個文件在文件選擇
- 27. MultiFile選擇多個文件
- 28. ckfinder選擇多個文件
- 29. 如何用一個nsis腳本創建兩個exe文件?
- 30. NSIS補丁(一個文件中有多個補丁)
我所期待的一個例子。我經歷了很多頁面,但我無法弄清楚。 –