2016-10-20 39 views
2

我想獲取當前在Windows資源管理器中打開的所有文件夾的完整路徑。我已經設法按以下格式的這些文件夾的所有句柄:如何獲取當前在Windows資源管理器中用C#打開的所有文件夾的完整路徑?

IntPtr WindowInformation.Handle 

是否有可能得到類似的名單,因爲這一個從這些手柄或者我需要使用其他方法?

C:\測試\ FOLDER01 \

C:\測試\ folder02 \

d:\遊戲\

我發現了幾個答案類似的問題,但有些他們只返回文件夾的名稱,而另一個只在文件夾中選擇某些文件時才起作用。我需要一個簡單列出所有當前打開的文件夾。我希望這是可能的,我以前從未使用過WinAPI。

P.S .: Windows Vista/7/8/10是好的,我不需要它在較舊的工作。

回答

2

它們可以通過Shell API窗口枚舉(與Internet Explorer窗口一起)使用,所以試試這個。

添加COM參照SHELL32/shdocvw.dll中和:

foreach (SHDocVw.InternetExplorer window in new SHDocVw.ShellWindows()) { 
    if (Path.GetFileNameWithoutExtension(window.FullName).ToLowerInvariant() == "explorer") { 
     if (Uri.IsWellFormedUriString(window.LocationURL, UriKind.Absolute)) 
      Console.WriteLine(new Uri(window.LocationURL).LocalPath); 
    } 
} 
相關問題