【问题标题】:Inno Setup TInputDirWizardPage to not allow UNC pathInno 设置 TInputDirWizardPage 不允许 UNC 路径
【发布时间】:2011-06-03 14:13:05
【问题描述】:

我有一个 TInputDirWizardPage 允许用户选择一个备份目录。它会自动允许并错误检查输入的路径,包括 UNC 路径。备份目录不能是 UNC 路径。我怎样才能让它不允许和错误检查 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;

【问题讨论】:

  • 你的脚本中有[Setup] AllowUNCPath=no吗?
  • 您是否愿意不使用 CreateInputDirPage 并使用自定义版本?如果是这样,您可以决定它执行的所有检查以及允许的检查。
  • 你不能测试'\\'的前两个字符(Copy()),如果是则弹出一条消息(MsgBox())并从NextButtonClick返回False?

标签: installation inno-setup pascal


【解决方案1】:

我做了这个,但它似乎没有做任何事情。

[Setup]
AllowUNCPath=false

所以我在 NextButtonClick 上添加了一个检查,以将它们保留在输入路径页面上,直到它们输入有效的非 unc 路径。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    相关资源
    最近更新 更多