Csharp/C#教程:在C#中监视资源管理器中的文件选择(如剪贴板监视)分享


在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)!

  1. 在Shdocwv.dll和Shell32.dll上运行Tlbimp(或直接从VS添加引用)。
  2. 创建ShellWindows集合的实例并进行迭代。 这将包含Windows资源管理器和Internet Explorer窗口。
  3. 对于Windows资源管理器窗口,IWebBrowser2.Document属性将返回IShellFolderViewDual引用。
  4. IShellFolderViewDual具有您可以查询的SelectedItems方法以及您可以处理的更改事件。

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/942204.html

(0)
上一篇 2021年11月13日
下一篇 2021年11月13日

精彩推荐