5

Windows では、デスクトップまたは Windows エクスプローラーで、ファイルまたはフォルダーが選択 (強調表示) された瞬間を検出したいと考えています。そんな時、ファイルやフォルダのフルネームを表示するメッセージボックスを表示したい。

複数のアイテムが選択されている場合は、それらすべてを表示したい。

私のソリューションは C# で作成する必要があることに注意してください。

4

2 に答える 2

5

マウス クリックまたは選択されたイベントを取得するには、次の例をご覧ください。

https://stackoverflow.com/questions/7222749/i-created-a-program-to-hide-desktop-icons-on-double-click-of-desktop-but-would-o

これを次のコードに結合します。SHDocVW.dll および Shell32.dll への参照を追加することを忘れないでください。これにより、すべてのエクスプローラーで選択されたすべてのアイテムとフォルダー パスが返されます。

public void GetListOfSelectedFilesAndFolderOfWindowsExplorer()
    {
        string filename;
        ArrayList selected = new ArrayList();
        var shell = new Shell32.Shell();
        //For each explorer
        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)
                {
                    MessageBox.Show(item.Path.ToString());
                    selected.Add(item.Path);
                }
            }
        }
    }
于 2013-03-27T09:20:09.053 に答える