Я пытаюсь создать небольшое вспомогательное приложение, один сценарий - «поиск дубликатов файлов».Я хочу сделать следующее:
- Я запускаю свое приложение C # .NET, оно дает мне пустой список.
- Запустите обычный проводник Windows, выберите файл в некоторой папке.
- Приложение C # рассказывает мне об этом файле (например, дубликаты)
Как я могу отслеживать текущий выбранный файл в «обычном» экземпляре проводника Windows.Нужно ли запускать экземпляр с помощью .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);
}
}
}