Windows では、デスクトップまたは Windows エクスプローラーで、ファイルまたはフォルダーが選択 (強調表示) された瞬間を検出したいと考えています。そんな時、ファイルやフォルダのフルネームを表示するメッセージボックスを表示したい。
複数のアイテムが選択されている場合は、それらすべてを表示したい。
私のソリューションは C# で作成する必要があることに注意してください。
Windows では、デスクトップまたは Windows エクスプローラーで、ファイルまたはフォルダーが選択 (強調表示) された瞬間を検出したいと考えています。そんな時、ファイルやフォルダのフルネームを表示するメッセージボックスを表示したい。
複数のアイテムが選択されている場合は、それらすべてを表示したい。
私のソリューションは C# で作成する必要があることに注意してください。
マウス クリックまたは選択されたイベントを取得するには、次の例をご覧ください。
これを次のコードに結合します。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);
}
}
}
}