1

スタック オーバーフローでこのコードを見つけ、arraylist ではなく List を返すように変更しました。キーを押すたびに関数が呼び出されます。この関数が正常に呼び出されている間、SelectedItems() は、デスクトップでハイライトされているにもかかわらず、毎回空のように見えます。エクスプローラーウィンドウでも試してみましたが、結果は同じでした。なぜ何も返さないのか誰にも分かりますか? スタックオーバーフローの他の人々は、それを機能させることができるように見えましたが、私の何が問題なのですか?

 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;

    }
4

0 に答える 0