gpt4 book ai didi

windows - FindWindow 收到的句柄是否需要释放?

转载 作者:可可西里 更新时间:2023-11-01 11:16:20 27 4
gpt4 key购买 nike

我正在编写的应用程序正在使用虚拟键盘。要显示、隐藏、调整大小或移动虚拟键盘,我首先需要通过调用 FindWindow 函数获取它的句柄,然后通过 PostMessage 向它发送一些消息。

由于我没有使用 winapi 的经验,我的问题是我是否需要以某种方式释放这个句柄,或者我可以在完成后忘记它吗?

虚拟键盘是一个独立的进程,其生命周期比我的应用程序长。

最佳答案

您不需要完成此句柄。它由创建窗口的进程拥有,该进程还负责销毁它。

与内核句柄(文件句柄、事件句柄、互斥句柄等)不同,窗口句柄不进行引用计数。您调用 FindWindow,然后对窗口句柄执行需要执行的操作,然后就可以了。

但是请注意,由于系统不跟踪对窗口句柄的引用,因此如果窗口被销毁,那么您可能会保留该被销毁窗口的句柄。如果系统重新使用该句柄,那么您现在就有了另一个窗口的句柄。

如果可能的话,当您以这种方式在多个进程之间协调用户界面时,您还应该传达窗口销毁事件,以避免一个进程持有陈旧的句柄。

关于windows - FindWindow 收到的句柄是否需要释放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41846936/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com