![](/img/trans.png)
[英]How to check the space in the drive by taking the path from the Destination Folder When installing the software using NSIS
[英]How to show only local drives and folders from the Browse dialog when installing using NSIS?
使用NSIS安裝時打開瀏覽對話框后,它將顯示驅動程序,文件夾,映射的驅動器,可移動驅動器和網絡文件夾的列表。 如何過濾它並從“瀏覽”對話框中僅顯示本地驅動器和文件夾?
您無法更改目錄頁面的工作方式,如果要過濾文件夾對話框,則必須編寫一個自定義頁面和一個自定義插件。
但是,您可以驗證目錄並阻止用戶進入下一頁:
!include LogicLib.nsh
Page Directory
Page InstFiles
!define /IfNDef DRIVE_FIXED 3
Function .onVerifyInstDir
StrCpy $0 $InstDir 1
System::Call 'KERNEL32::GetDriveType(t"$0:\")i.r0'
${If} $0 <> ${DRIVE_FIXED}
Abort
${EndIf}
FunctionEnd
在這種特定情況下,這可能不是一個好主意,因為用戶不知道為什么他們不能單擊“下一步/安裝”按鈕。
相反,當用戶嘗試離開頁面時,您應該停止顯示消息:
!include LogicLib.nsh
Page Directory "" "" ValidateDirPage
Page InstFiles
!define /IfNDef DRIVE_FIXED 3
Function ValidateDirPage
StrCpy $0 $InstDir 1
System::Call 'KERNEL32::GetDriveType(t"$0:\")i.r0'
${If} $0 <> ${DRIVE_FIXED}
MessageBox MB_ICONSTOP "You must specify a local fixed drive for some reason!"
Abort
${EndIf}
FunctionEnd
注意:某些USB存儲設備將被標識為固定驅動器。
即使完成所有這些操作,也無法阻止人們將其安裝到其他驅動器類型。 他們可以臨時更改驅動器號,進行安裝,然后將其改回等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.