2011-06-03 74 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;