gpt4 book ai didi

winapi - 如何获取java应用程序的图标?

转载 作者:行者123 更新时间:2023-12-01 09:40:36 25 4
gpt4 key购买 nike

我有一个代码,它列出了 win32 框上正在运行的应用程序,然后显示它们的图标。

到目前为止一切顺利,我得到了应用程序的 hwnd,然后调用 GetClassLong(hwnd,GCL_HICONSM),一切都很好。

但是处理 java 应用程序的情况很痛苦,因为响应我的调用的进程是 javaw.exe,而不是 Shiny 的、pimpy 的 java 应用程序,它有一个非常漂亮的图标......

我也试了一下 GetWindowThreadProcessId,可惜返回的是 javaw 的 PID...

有一种方法可以做到这一点,因为任务管理器 (alt+tab) 会显示好图标。

最佳答案

感谢PhiLho,我回答了我自己的问题谁让我走上了正轨:来自 Codeproject 的文章使用正确的算法来获取窗口图标(无论是否为 java):

//首先,尝试:

SendMessageTimeout(WM_GETICON)

//如果没有找到图标,试试

GetClassLong(GCL_HICONSM)

//如果还是没有图标,试试

SendMessageTimeout(WM_WM_QUERYDRAGICON)

//如果还是没有图标,你就完蛋了,返回错误,或者空图标

由于某种原因,java 应用程序会响应第一个调用,但不会响应其他调用,这似乎是由 javaw.exe 处理的。

再次感谢 PhiLho。

关于winapi - 如何获取java应用程序的图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/212212/

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