如何检查用户(Windows)在c ++(WinAPI)中打开的特定目录?
例如,我在\user\My Documents\checker.exe
中有程序。
checker.exe
正在后台运行,并检查用户是否打开My Documents
目录。如果是这样,请将系统时间保存到file.txt。
谢谢你的帮助!
答案 0 :(得分:2)
您必须先使用以下任一方式获取用户“我的文档”文件夹的PIDL:
SHGetDesktopFolder()
和IShellFolder::ParseDisplayName()
或SHParseDisplayName()
。指定L"::{450d8fba-ad25-11d0-98a8-0800361b1103}"
作为要解析的显示名称(请参阅My Documents and My Pictures Folders)。
SHGetKnownFolderPath(FOLDERID_Documents)
(Vista及更高版本)
然后,你可以enumerate all Explorer windows,比较每个窗口的PIDL。如果任何窗口的PIDL与检索到的PIDL匹配/开始,则该窗口打开“我的文档”文件夹或(大)子文件夹。