Sto cercando di ottenere un elenco di file selezionati dal desktop di Windows e da Esplora risorse di Windows. Il requisito è che dovrei essere in grado di recuperare la selezione corrente dalla finestra di Explorer attiva o dal Desktop.Ottieni l'elenco dei file selezionati da Windows Desktop
Sono riuscito a mettere insieme il seguente codice, dopo aver attraversato le risorse online, ma non fornisce un elenco di elementi selezionati dal 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);
}
}
}
Oltre a questo, ho provato quanto segue ma dà solo un elenco di tutti gli elementi selezionati in tutte le finestre aperte explorer ignorando il desktop.
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);
}
}
Così ho appena finisco sempre con una lista da Windows Explorer e ottenere alcun risultato, anche quando non ci sono le finestre di Explorer sono aperte. Le tecniche attuali sembrano ignorare del tutto il desktop.
Apprezzerei molto se qualcuno potesse aiutarmi a ottenere un elenco di file selezionati dalla finestra/desktop attualmente attiva.
Grazie.
potrebbe ottenere file (s) selezionato sul desktop? Se sì, potresti dirmi come farlo? Per favore! – GSP