如何檢查用戶(Windows)在C++(WinAPI)中打開的特定目錄? 例如,我有程序\user\My Documents\checker.exe
。 checker.exe
正在後臺運行並檢查用戶是否打開My Documents
目錄。如果這是真的,程序將系統時間保存到file.txt。 謝謝你的幫助!我可以檢查的特定目錄是由c + +中的用戶(Windows資源管理器)打開的
回答
您必須首先獲得使用該用戶的 「我的文檔」 文件夾中任何的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匹配/開始,該窗口將打開「我的文檔」文件夾或(大)子文件夾。
Upvote,但這僅適用於「我的文檔」,這只是目錄的OP示例。 – user2120666
@ user2120666:那是因爲我放入了我的文檔的GUID!如果你有一個常規路徑,你可以調用'ILCreateFromPath'來代替。 – MSalters
如果shell命名空間擴展名在目錄所在的位置,請不要正確處理ParseDisplayName? – user2120666
- 1. 打開Windows資源管理器的目錄,選擇(在Delphi)的特定文件
- 2. 打開WPF應用程序目錄的Windows資源管理器
- 3. 從IntelliJ在Windows資源管理器中打開包含目錄
- 4. 從Silverlight打開Windows資源管理器
- 5. 是否有可能從LinkLabel的打開Windows資源管理器
- 6. 開幕目錄像Windows窗體上的Windows資源管理器?
- 7. 從HTML URL打開特定文件夾(Windows資源管理器)
- 8. 我怎麼能打開SharePoint庫從Windows資源管理器C#
- 9. Tkinter - 在Windows資源管理器中打開目錄窗口的方法
- 10. 打開Adobe Flash IDE,打開Windows資源管理器,崩潰
- 11. 如何在我的C#WinApp項目中打開服務器資源管理器?
- 12. 使用Web瀏覽器打開Windows資源管理器 - PHP
- 13. 在C++中打開Windows資源管理器窗口
- 14. 在文件資源管理器中打開一個目錄
- 15. 如何從cmd.exe打開指定目錄中的資源管理器窗口?
- 16. 而在Windows資源管理器中打開目錄名稱中包含空間
- 17. 在資源管理器中打開
- 18. 從我的Metro應用程序的Windows資源管理器中打開文件
- 19. 在Windows資源管理器中打開Windows 7庫
- 20. 可以使用PowerShell檢查Windows資源管理器窗口的狀態嗎?
- 21. 從VB.NET打開Windows資源管理器:不正確的文件夾打開
- 22. 在哪裏可以創建Windows資源管理器和我的應用程序在Android中可見的目錄?
- 23. 使用WPF DataGridHyperLinkColumn項目,打開Windows資源管理器和打開文件
- 24. 如何從SL應用程序打開Windows資源管理器?
- 25. Windows資源管理器和重新分析點文件:保持資源管理器不打開我的文件
- 26. 打開目錄在文件資源管理器上點擊
- 27. firefox打開本地鏈接到目錄與資源管理器
- 28. 如何重新使用現有/已打開的Windows資源管理器窗口啓動資源管理器
- 29. Eclipse開普勒:隱藏項目資源管理器中的特定項目
- 30. 打開Windows資源管理器並選擇一個文件
快速搜索句柄命令看起來像它可以檢索您需要的數據。 [https://technet.microsoft.com/en-us/sysinternals/bb896655.aspx]這是一個cmd命令。你可以用'system()'函數調用cmd命令。 –
只有一種方法正好做到這一點 - 爲文件系統寫入微過濾器(或舊式過濾器) – RbMm
您可以[檢查打開文件的進程(PID)](http://stackoverflow.com/questions/6931972/how-找到哪個進程具有一個文件的文件名),然後[嘗試找到使用該PID的用戶](http://stackoverflow.com/questions/3172392 /檢出用戶名 - 從處理-ID)。我不確定這是否適用於文件夾。 –