我正在尝试创建一个小帮助应用程序,一个场景是“文件复制查找器”。我想做的是:
如何在“普通”Windows资源管理器实例中监控当前选定的文件。我是否必须使用.NET启动实例以获取进程的句柄。我需要一个句柄,还是有一些“全局钩子”我可以在C#里面监视。它有点像监控剪贴板,但不完全一样......
任何帮助都表示赞赏(如果您没有代码,只需指向正确的interops,dll或帮助页面:-)谢谢,Chris
编辑1(当前来源,感谢Mattias)
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);
}
}
}
答案 0 :(得分:1)
您可以使用shell自动化接口执行此操作。
的基本过程