吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1379|回复: 2
收起左侧

[其他求助] 如何根据窗口在任务栏的顺序获取窗口句柄?

[复制链接]
Tuzki_cx 发表于 2024-4-3 09:22
50吾爱币
例如,我多开了三个程序,它们在任务栏上面从左到右依次为窗口1、窗口2、窗口3,现在就根据这个顺序来获取它们的句柄;
然后我拖动他们的顺序,从左到右变为窗口2、窗口1、窗口3,现在就根据这个新的顺序来获取它们的句柄。
这个应该怎么来实现呢?

最佳答案

查看完整内容

在Windows系统中,想要基于任务栏上的窗口顺序来获取窗口句柄并不是一个直接支持的功能,因为任务栏的UI组件不提供这种直接的API接口来查询。但是,有一些可能的方法可以尝试。 1. 使用Windows Shell API: 一些Shell API可能会根据窗口的Z顺序提供信息,但这并不完全符合任务栏的顺序。 2. 模拟用户操作: 模拟鼠标和键盘操作来在任务栏上进行遍历,获取到焦点的窗口然后提取句柄。这是一种比较hacky的方法,可能涉及 ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

小哲网络 发表于 2024-4-3 09:22
在Windows系统中,想要基于任务栏上的窗口顺序来获取窗口句柄并不是一个直接支持的功能,因为任务栏的UI组件不提供这种直接的API接口来查询。但是,有一些可能的方法可以尝试。

1. 使用Windows Shell API:
   一些Shell API可能会根据窗口的Z顺序提供信息,但这并不完全符合任务栏的顺序。

2. 模拟用户操作:
   模拟鼠标和键盘操作来在任务栏上进行遍历,获取到焦点的窗口然后提取句柄。这是一种比较hacky的方法,可能涉及到UI自动化技术,例如Microsoft提供的UI Automation。

3. 使用辅助软件:
   一些第三方软件(如AutoHotkey脚本)或工具可能能够与任务栏交互并得到一些信息。

4. 系统钩子(Hooks):
   使用系统钩子技术,如设置一个钩子来监视窗口的创建、销毁、活跃状态等事件,可能间接获取到一些有关窗口顺序的信息。

5. 读取注册表或系统文件:
   有时任务栏的一些信息会保存在注册表或特定的系统文件中,但是这种方法并不可靠,也可能会随着系统更新而改变。

6. 使用Accessibility接口:
   Windows的Accessibility接口可能提供任务栏项的信息,但需要深入研究是否可行。

请注意,大多数上述方法都需要相当深入的Windows编程知识,而且可能要求你的应用程序拥有相应的权限。此外,一些方法可能会受到操作系统版本的限制,并不是所有版本的Windows都能使用。

如果你是在进行软件开发,最稳妥的方式是尽量避免依赖于任务栏上的窗口顺序,因为这不是一个稳定的接口,并且可能会因用户的自定义设置或不同的Windows版本而有所不同。如果非要这么做,你可能需要考虑使用Windows底层的API并结合UI Automation这类技术来实现。
 楼主| Tuzki_cx 发表于 2024-4-8 09:07
小哲网络 发表于 2024-4-3 09:43
在Windows系统中,想要基于任务栏上的窗口顺序来获取窗口句柄并不是一个直接支持的功能,因为任务栏的UI组 ...

好复杂了,算了已经放弃了,谢谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-12-18 06:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表