|
1
|
| Pierre Arnaud · 技术社区 · 16 年前 |
|
|
1
2
正确的做法是,Windows的“打开文件”公共对话框显示Internet快捷方式以及文件夹。我不知道这种行为为什么存在,但它确实存在——它发生在win32(尝试使用记事本验证)和winforms应用程序中。 有一种方法可以解决这个问题,但警告:这是黑客行为!如果从FileDialog类派生自定义文件对话框类,则可以访问一些受保护的事件,这些事件可用于自定义FileDialog操作的各个方面。 Dino Esposito在2003年11月写了一篇msdn杂志文章,展示了这种技术的工作原理。这篇文章已不在msdn站点上,但您可以在Wayback机器的存档中找到它: http://web.archive.org/web/20150117123625/http://msdn.microsoft.com/en-us/magazine/cc300434.aspx . 您可能需要做的是挂接或子类化“文件”对话框的wndproc,手动查看“文件列表”控件,识别快捷方式条目,并向“文件列表”控件发送Windows消息以删除这些项。然后,您需要观察该列表的刷新(例如,目录更改),并重复筛选操作。 这将是一个巨大的黑客,但这是可能的。
如果这项工作太多或黑客行为太多,我建议您只使用fileok事件来阻止用户通过返回来选择快捷方式。
|
|
2
2
烦人的。您可以通过实现fileok事件的处理程序来对它们进行重击,这样用户就永远无法选择其中一个:
|