【发布时间】:2017-06-29 10:23:17
【问题描述】:
将我的问题引用到这个答案:https://stackoverflow.com/a/4016075/698266,特别是第 3 步说“否则,如果应用程序过去使用过打开或另存为对话框,则选择最近使用的路径作为初始目录。 "
Windows 将这些信息保存在哪里?
注意:通过实验,它似乎链接到应用程序文件名没有路径 - 即在不同目录中复制的相同可执行文件“看到”相同的最后路径信息,同时更改 exe文件名使对话框指向用户的文档目录。
我的实际兴趣是用于测试目的。我需要“重置”这些信息,以便在类似于第一次运行的条件下测试我的应用程序。
【问题讨论】:
-
保存此信息的位置未记录,它可能会因版本而异。我想您真正感兴趣的是识别您的应用程序的规则。正确的?这根本不是德尔福问题。它是纯 Win32。
-
是的,我知道它不是严格意义上的 Delphi,但我正在使用 Delphi 及其 TOpen/SaveDialog,在这种环境中工作时我可以看到这种行为。不,我对识别我的应用程序的规则不感兴趣。我将编辑问题以说明我的意图。
-
另外,位置是否因版本而异,对我来说并不重要,在这种情况下我会适应新的地方。我只是想“手动”重置这个位置。
-
只需在运行应用程序更改目录之前和之后导出 HKCU。然后比较。
-
更直接的解决方案是使用SysInternals Process Monitor 并在您的EXE 上过滤它。然后它将向您显示 EXE 实时访问的确切注册表项和值。