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

How do I capture a user's left-click in Windows Explorer?

本文关键字:用户 单击 Windows 资源管理器      更新时间:2023-10-16

根据我所读到的内容,当用户右键单击Windows资源管理器中的文件时,会调用shell扩展。有没有办法在用户左键单击文件时捕获事件或运行 shell 扩展?

我需要跟踪用户在选择文件时选择的文件。这可能吗?

感谢您的帮助。

首先,使用 WinApi 检查哪个窗口具有焦点。它是一个资源管理器窗口吗?通过检查其属性来确保它是您要查找的窗口类型。如果是,请检查用户何时使用 GetAsyncKeystate 按下鼠标左键,这会注意到所有输入。

当您获得鼠标左键时,单击其时间以检查用户是否单击了文件表示形式。循环遍历 Windows GUI 项,直到找到具有键盘焦点的项目。使用程序 Spy++ 获取文件列表的容器/帧的 ID。现在检查焦点/选定项是否在此框架内,最重要的是:如果它是列表项。获取项目的名称/标题属性,您就完成了!

我希望您意识到,由于此过程的长度,我不能也不会为您提供执行此操作的完整代码......告诉我你有什么不明白的。