关于网友提出的“ 通过句柄控制显示托盘图标的窗口”问题疑问,本网通过在网上对“ 通过句柄控制显示托盘图标的窗口”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 通过句柄控制显示托盘图标的窗口
描述: 原本发在http://topic.csdn.net/u/20090816/16/886b5975-3655-43eb-ad91-56881f326f16.html这的。回复太少,沉了。再开一贴。
我想通过我的程序来控制飞鸽传书界面的显示。
先通过进程名找到飞鸽的进程PID,然后由PID得到主窗口句柄。然后用了常用的几种显示窗口的方法来将主窗口显示出来,结果都不行。
可能这些方法都是针对已有窗体的窗口。但飞鸽当前的状态是就一个托盘图标,不知道大家对这种托盘图标主窗体的显示有什么好办法。
解决方案1: 帮你顶一下
解决方案2:先通过进程名找到飞鸽的进程PID,然后由PID得到主窗口句柄。
得到主窗口句柄是否有效?
飞鸽启动后,只有托盘
双击托盘图标后,才创建并显示主窗口
关闭主窗口后,窗口是销毁了而不是隐藏了
1.飞鸽开源的,可以自行修改。推荐。
2.基本上不能通过托盘窗口句柄来控制主窗口
托盘图标是由系统栏来管理的(窗口类名:Shell_TrayWnd)
用spy++监视双击托盘后,窗口Shell_TrayWnd产生的消息,然后PostMessage模拟发送
因为托盘在系统栏的位置可能会变,所以很难控制。
3.Hook Shell_NotifyIcon
获取参数NOTIFYICONDATA 的hWnd和uCallbackMessage值
再PostMessage(hWnd,uCallbackMessage,0,WM_LBUTTONDBLCLK);
LZ为什么要这样做呢?
解决方案3: 顶下吧
以上介绍了“ 通过句柄控制显示托盘图标的窗口”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2277753.html