在C#中监视资源管理器中的文件选择(如剪贴板监视)
我正在尝试创建一个小帮助应用程序,一个场景是“文件复制查找器”。 我想要做的是:
如何在“普通”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); } } }
您可以使用shell自动化接口执行此操作。 基本过程是
上述就是C#学习教程:在C#中监视资源管理器中的文件选择(如剪贴板监视)分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
- 在Shdocwv.dll和Shell32.dll上运行Tlbimp(或直接从VS添加引用)。
- 创建ShellWindows集合的实例并进行迭代。 这将包含Windows资源管理器和Internet Explorer窗口。
- 对于Windows资源管理器窗口,IWebBrowser2.Document属性将返回IShellFolderViewDual引用。
- IShellFolderViewDual具有您可以查询的SelectedItems方法以及您可以处理的更改事件。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/942204.html