我有一组文件(“.r2w”)扩展名,它们与 Attachmate Reflection 有文件关联。我在一个文件夹中有多个这样的文件,我已将其添加到 PATH。我还将 .r2w 添加到 PATHEXT。
此设置似乎对 cmd.exe 来说是正确的,但在运行对话框 (Win+R) 中不起作用。例如,我有一个文件“test.r2w”。在 cmd.exe 中,我只需键入“test”即可正确启动。但是,在运行对话框中键入“test”不起作用。
我运行了进程监视器,发现运行对话框的命令搜索算法与此处的“PATH 命令和 PATHEXT 变量”部分不同:http://technet.microsoft.com/en-us/library/cc723564.aspx
1)有人能解释一下运行对话框的命令搜索算法是什么吗?
2)有人能提供一种方法来设置运行对话框来做我想做的事情吗——特别是能够运行.r2w 文件而不必输入扩展名?
答案1
嗯,运行对话框!= NT 命令解释器。
但我猜测它使用与 ShellExecuteEx 相同的算法。我记得一篇 Old New Thing 博客文章展示了如何通过调用 ShellExecute 命令来模拟运行对话框搜索的某些功能。
如果我是微软,我也不会记录搜索算法。这是一个实现细节。