如何在Windows资源管理器中捕捉用户的左键单击?

4

据我所知,当用户在Windows资源管理器中右键单击文件时,会调用外壳扩展。是否有一种方法可以在用户左键单击文件时捕获事件或运行外壳扩展呢?

我需要跟踪用户选择的文件,以便在用户选择它们时进行记录。这是可能的吗?

感谢您的帮助。


订阅shell文件夹视图上的SelectionChanged事件。这也将捕获由于鼠标点击以外的其他原因而导致的选择更改。 - Raymond Chen
1个回答

0

首先,使用WinApi检查哪个窗口具有焦点。它是资源管理器窗口吗?通过检查其属性确保它是您要查找的窗口类型。如果是,则使用GetAsyncKeystate检查用户是否按下了左鼠标按钮,该函数可以检测所有输入。

当您获得左键单击时,就可以检查用户是否单击了文件表示。循环遍历窗口GUI项,直到找到具有键盘焦点的项。使用程序Spy++获取文件列表的容器/框架的ID。现在检查所选项是否在此框架内,并且最重要的是:它是否为列表项。获取该项的名称/标题属性,然后您就完成了!

我希望您意识到,由于此过程的长度,我无法并且不会为您提供完整的代码来执行此操作... 如果您有任何不理解的地方,请告诉我。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接