[英]Delphi 7 Windows 7 Can't set active direcory, when a dpr file is opened from windows explorer
我曾經從Windows資源管理器中打開Delphi 7 dpr文件。 Delphi用於更新當前的保存目錄。
但是從Windows 7開始,這是行不通的。 我從Windows資源管理器中打開dpr,添加新表格。 當我嘗試保存新單元時,delphi嘗試將文件保存到最后一個已知目錄。
有解決這個問題的方法嗎?
Delphi 7使用較舊的“ 通用對話框” API來打開/保存文件( GetOpenFileName()
和GetSaveFileName()
函數)。 在Vista中,該API被較新的Common Item Dialog API( IFileOpenDialog
和IFileSaveDialog
接口)取代。
您描述的行為僅是舊API在現代Windows版本中的工作方式。
根據OPENFILENAME
結構文檔:
lpstrInitialDir
類型:LPCTSTR初始目錄。 選擇初始目錄的算法在不同平台上有所不同。
Windows 7的:
如果
lpstrInitialDir
的值與應用程序第一次使用“打開”或“另存為”對話框時傳遞的值相同,則將用戶最近選擇的路徑用作初始目錄。否則,如果
lpstrFile
包含路徑,則該路徑是初始目錄。否則,如果
lpstrInitialDir
不為NULL,則它指定初始目錄。如果
lpstrInitialDir
為NULL,並且當前目錄包含指定過濾器類型的任何文件,則初始目錄為當前目錄。否則,初始目錄是當前用戶的個人文件目錄。
否則,初始目錄為桌面文件夾。
Windows 2000 / XP / Vista:
如果
lpstrFile
包含路徑,則該路徑是初始目錄。否則,
lpstrInitialDir
指定初始目錄。否則,如果應用程序過去曾經使用過“打開”或“另存為”對話框,則將最近使用的路徑選作初始目錄。 但是,如果應用程序長時間不運行,則其保存的所選路徑將被丟棄。
如果
lpstrInitialDir
為NULL,並且當前目錄包含指定過濾器類型的任何文件,則初始目錄為當前目錄。否則,初始目錄是當前用戶的個人文件目錄。
否則,初始目錄為桌面文件夾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.