Получить список выбранных файлов с рабочего стола Windows

Я пытаюсь получить список выбранных файлов с рабочего стола Windows и из проводника Windows. Требование заключается в том, что я должен быть в состоянии получить текущий выбор из окна активного проводника или рабочего стола.

Мне удалось собрать следующий код, пройдя через онлайн-ресурсы, но он не предоставляет список выбранных элементов с рабочего стола.

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);
    }
}

Поэтому я всегда получаю список из окон проводника и не получаю результатов, даже когда окна проводника не открыты. Текущие методы, кажется, игнорируют рабочий стол в целом.

Я был бы очень признателен, если бы кто-нибудь помог мне получить список выбранных файлов из текущего активного окна / рабочего стола.

Благодарю вас.

Ответы на вопрос(3)

Ваш ответ на вопрос