2011-06-03 118 views
0

我有一個TInputDirWizardPage允許用戶選擇一個備份目錄。它會自動允許和錯誤檢查輸入的路徑,包括UNC路徑。備份目錄不能是UNC路徑。我如何使它不允許和錯誤檢查UNC路徑?Inno Setup TInputDirWizardPage不允許UNC路徑

procedure InitializeWizard(); 
begin 
    BackupInfoPage := CreateInputDirPage(100, 'caption', 'desc', 'sub caption', False,'Backup'); 
    BackupInfoPage.Add('Backup Location:'); 
    with BackupInfoPage do 
    begin 
     OnNextButtonClick := @BackupInfoForm_NextButtonClick; 
    end; 
end; 

function BackupInfoForm_NextButtonClick(Page: TWizardPage): Boolean; 
begin 
    if not DirExists(BackupInfoPage.Values[0]) then 
    begin 
    ForceDirectories(BackupInfoPage.Values[0]); 
    end; 
end; 
+0

你的腳本中有'[Setup] AllowUNCPath = no'嗎? – 2011-06-04 02:53:07

+0

你打開不使用CreateInputDirPage,並做一個自定義版本?如果是這樣,你可以決定它執行的所有檢查和允許的內容。 – 2011-06-04 02:58:55

+1

您不能測試'\\'的前兩個字符([Copy()](http://www.jrsoftware.org/ishelp/index.php?topic=isxfunc_copy)),並彈出消息([ MsgBox()](http://www.jrsoftware.org/ishelp/index.php?topic=isxfunc_msgbox))如果是並從NextButtonClick返回False? – 2011-06-06 00:09:10

回答

0

我這樣做,但它似乎沒有做任何事情。

[Setup] 
AllowUNCPath=false 

所以我加上了NextButtonClick檢查,以保持它們的進入路徑頁面上,直到他們進入一個有效的,非UNC路徑。

if (Copy(BackupLocale, 1, 2) = '\\') then 
    begin 
    MsgBox('UNC paths are not allowed.', mbError, MB_OK); 
    Result := False; 
    end;