未应用 NSIS SelectFileDialog 过滤器

NSIS SelectFileDialog filter not being applied

我在 NSIS 脚本中使用了以下行:

nsDialogs::SelectFileDialog 打开"C:\temp.rar" "*.rar"

当我 运行 生成的安装程序(在 Windows 10 中)时,文件对话框打开到 C: 应该是这样,temp.rar显示在文件名字段中,*.rar 显示在过滤器下拉列表中。但是过滤器没有应用到文件列表。也就是说,所有文件类型仍然可见,尽管 *.rar 是过滤器下拉列表中的唯一条目。

有谁知道可能导致此问题的原因或解决方法吗?

不幸的是,文档对此并不清楚,但它使用与 Windows 中的 GetOpenFileName 函数相同的格式;过滤器是一对列表;显示字符串和 DOS 过滤器:

nsDialogs::SelectFileDialog open "C:\temp.rar" "*.rar|*.rar"
Pop [=10=]
nsDialogs::SelectFileDialog open "C:\temp.rar" ".rar files|*.rar|All Files|*.*"
Pop [=10=]

请记住,过滤器仅用于帮助用户,但用户可以输入他们想要的任何文件名,即使它与活动过滤器不匹配。