Я пытаюсь получить список выбранных файлов из Windows Desktop и Windows Explorer. Требование состоит в том, чтобы я мог получить текущий выбор из окна активного проводника или рабочего стола.Получить список выбранных файлов из Windows Desktop
Мне удалось собрать следующий код после просмотра онлайновых ресурсов, но он не содержит список выбранных элементов на рабочем столе.
ArrayList selected = new ArrayList();
var shell = new Shell32.Shell();
IntPtr handle = IntPtr.Zero;
handle = GetForegroundWindow();
int intHandle = handle.ToInt32();
//For each explorer
foreach (InternetExplorer window in new ShellWindowsClass())
{
if (window.HWND == (int)handle)
{
Shell32.FolderItems items = ((Shell32.IShellFolderViewDual2)window.Document).SelectedItems();
foreach (Shell32.FolderItem item in items)
{
selected.Add(item.Path);
}
}
}
Кроме того, я попытался следующие, но это только дает список всех выбранных элементов во всех открытых окнах проводника, игнорируя при этом рабочий стол.
string 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);
}
}
Так что я просто всегда в конечном итоге со списком из Проводника и не получить никаких результатов, даже если нет проводниковая окна открыты. Существующие методы, похоже, вообще игнорируют Рабочий стол.
Я был бы очень признателен, если бы кто-то мог помочь мне получить список выбранных файлов из текущего активного окна/рабочего стола.
Thank you.
Не могли бы вы получить выбранный файл (ы) на рабочем столе? Если да, не могли бы вы рассказать мне, как это сделать? Пожалуйста! – GSP