在c#中查询桌面选定的项目什么都不返回

时间:2017-05-14 17:36:43

标签: c# windows shell desktop shell32

我在堆栈溢出时发现此代码并修改它以返回List而不是arraylist。每当我按下一个键时调用该函数,并且当这个函数被调用时,SelectedItems()似乎每次都是空的,即使我在桌面上突出显示了东西。我在浏览器窗口中尝试了同样的结果。有谁知道为什么它什么也没有回来? stackoverflow上的其他人似乎能够使它的工作与我的错误有关吗?

 public List<string> GetShellItems()
    {
        List<string> selected = new List<string>();
        foreach (SHDocVw.InternetExplorer window in new SHDocVw.ShellWindows())
        {
            filename = Path.GetFileNameWithoutExtension(window.FullName).ToLower();
            if (filename.ToLowerInvariant() == "explorer")
            {
                Shell32.FolderItems items = ((Shell32.IShellFolderViewDual2)window.Document).SelectedItems();
                foreach (Shell32.FolderItem item in items)
                {
                    selected.Add(item.Path);
                }
            }
        }
        return selected;

    }

0 个答案:

没有答案