我在堆栈溢出时发现此代码并修改它以返回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;
}