是否可以将已最小化的第三方应用程序恢复到SysTray?
在最小化到TaskBar的应用程序上调用ShowWindow是可以的,但是在最小化到SysTray的应用程序中,它的句柄似乎被设置为零,当然ShowWindow找不到它。
发布于 2010-01-07 18:39:44
来自Adam Robinson和nobugz的有用建议。帮助我认识到我们正在尝试的事情甚至可能是不可能的。这在很大程度上取决于应用程序在隐藏自身时在内部的表现,而我们并不能控制这一点,甚至对此也知之甚少。我们需要从另一个方向来处理这个问题。
该应用程序位于SysTray中,等待通过用户鼠标单击它来激活,但我们不能自动执行。但是还有另一种“激活”应用程序的方法,那就是再次运行exe文件。在这种情况下,这不会启动第二个实例,它只是重新激活现有的实例。那么,为什么不用Shell打开exe文件,然后以这种方式重新激活应用程序呢?这就是我们所做的,这是一个有效的解决方案。
发布于 2010-01-07 03:49:18
不能;可以采取不同的方法来实现这一点(应用程序可能会在恢复时关闭窗口并打开新的副本,也可能只是隐藏原始窗口并在恢复时显示它)。为了实现此功能,应用程序不需要遵循特定的流程,因此也没有可以遵循的特定流程来逆转它。
如果您有关于特定应用程序如何运行的信息,并且您希望将其作为特定情况来处理,那么这可能是可能的。但不幸的是,不存在万能的解决方案。
编辑
您可以尝试使用Process Explorer来确定进程打开了哪些(如果有的话)窗口句柄。这至少会告诉你它是在破坏还是隐藏窗口。
发布于 2010-01-07 03:52:05
它完全依赖于应用程序的实现。更常见的方法是从头开始创建一个新窗口,而不是显示一个隐藏的窗口。
它通过一个私有的回调函数得到托盘图标通知,你不能自己伪造它。伪造鼠标点击是非常困难的,因为你找不到图标所在的位置。我想你被卡住了。
https://stackoverflow.com/questions/2015689
复制相似问题