Мониторинг выбора файлов в проводнике (например, мониторинг буфера обмена) в C #
Я пытаюсь создать небольшое вспомогательное приложение, один сценарий - «поиск дубликатов файлов». Что я хочу сделать, это:
Я запускаю свое приложение на C # .NET, оно дает мне пустой список.Запустите обычный проводник Windows, выберите файл в какой-либо папкеПриложение C # рассказывает мне об этом файле (например, дубликаты)Как я могу контролировать текущий выбранный файл в "нормальном" экземпляре Windows Explorer. Нужно ли запускать экземпляр с помощью .NET, чтобы иметь дескриптор процесса. Нужен ли мне дескриптор, или есть какой-то «глобальный хук», который я могу отслеживать внутри C #. Это немного похоже на мониторинг буфера обмена, но не совсем то же самое ...
Любая помощь приветствуется (если у вас нет кода, просто укажите мне правильные операции, dll или страницы помощи :-) Спасибо, Крис
РЕДАКТИРОВАТЬ 1 (текущий источник, спасибо Маттиасу)
using SHDocVw;
using Shell32;
public static void ListExplorerWindows()
{
foreach (InternetExplorer ie in new ShellWindowsClass())
DebugExplorerInstance(ie);
}
public static void DebugExplorerInstance(InternetExplorer instance)
{
Debug.WriteLine("DebugExplorerInstance ".PadRight(30, '='));
Debug.WriteLine("FullName " + instance.FullName);
Debug.WriteLine("AdressBar " + instance.AddressBar);
var doc = instance.Document as IShellFolderViewDual ;
if (doc != null)
{
Debug.WriteLine(doc.Folder.Title);
foreach (FolderItem item in doc.SelectedItems())
{
Debug.WriteLine(item.Path);
}
}
}