Windows 7 在Win7上,GetOpenFileName函数忽略lpstrInitialDir参数

Windows 7 在Win7上,GetOpenFileName函数忽略lpstrInitialDir参数,windows-7,Windows 7,我正在使用GetOpenFileName并将OPENFILENAME结构的lpstrInitialDir成员设置为我想要作为初始目录的目录。然而,在Win7上,我的应用程序似乎记住了用户上次打开的目录,它忽略了lpstrInitialDir设置并转到最后一个目录 lpstrInitialDir LPCTSTR 初始目录。 选择初始目录的算法在不同的平台上有所不同 Windows 7: 1.如果lpstrInitialDir的值与第一次传递的值相同 应用程序使用了打开或另存为 对话框中,最近的路

我正在使用
GetOpenFileName
并将
OPENFILENAME
结构的
lpstrInitialDir
成员设置为我想要作为初始目录的目录。然而,在Win7上,我的应用程序似乎记住了用户上次打开的目录,它忽略了
lpstrInitialDir
设置并转到最后一个目录

lpstrInitialDir
LPCTSTR
初始目录。 选择初始目录的算法在不同的平台上有所不同

Windows 7:

1.如果lpstrInitialDir的值与第一次传递的值相同 应用程序使用了打开或另存为 对话框中,最近的路径 由用户选择的将用作 初始目录。
2.否则,如果lpstrFile包含路径,则该路径为初始路径 目录。
3.否则,如果lpstrInitialDir不为NULL,则指定初始值 目录

有人知道如何阻止这种情况发生吗


我希望我指定的目录是初始目录,无论用户上次打开的文件是什么,即我希望应用上述条件3。我做了明显的操作并在注册表中进行了搜索,但找不到任何与问题相关的内容。

如果将
lpstrFile
设置为所需的初始目录路径(即
lpstrInitialDir
),会发生什么。如果您正在使用
lpstrFile
指定文件名,那么您可能需要在文件名的初始目录路径前面加上前缀。

谢谢,这是我需要的建议。如果我将lpstrFile设置为完整路径,则OpenFile对话框将在lpstrFile中指定的目录中打开,并且它使用通配符C:\path\*.xml。这对我不起作用,我会得到“'error 12290.”无法打开。