0

是否可以恢复已最小化到 SysTray 的第 3 方应用程序?

在最小化到任务栏的应用程序上调用 ShowWindow 很好,但在应用程序已最小化到 SysTray 的情况下,它的句柄似乎设置为零,当然 ShowWindow 找不到它。

4

3 回答 3

2

不; 可以采取不同的方法来实现这一点(应用程序可能会在恢复时关闭窗口并打开一个新副本,或者它可能只是隐藏原始窗口并在恢复时显示它)。应用程序不需要遵循特定的过程来实现此功能,因此没有可以遵循的特定过程来反转它。

如果您有关于特定应用程序行为方式的信息,并且希望将其作为特定情况处理,那么这可能是可能的。但不幸的是,不存在一种万能的解决方案。

编辑

您可以尝试使用Process Explorer来确定进程打开了哪些(如果有)窗口句柄。这至少会告诉您它是否正在破坏或隐藏窗口。

于 2010-01-06T19:49:17.903 回答
1

它完全取决于应用程序的实现。更常见的方法是从头开始创建一个新窗口,而不是显示一个隐藏的窗口。

它通过私有回调函数获取托盘图标通知,您不能自己伪造。伪造鼠标点击很难正确,因为您无法找出图标所在的位置。我想你被困住了。

于 2010-01-06T19:52:05.237 回答
0

来自 Adam Robinson 和 nobugz 的有用建议。帮助我看到我们正在尝试的事情甚至可能是不可能的。太多取决于应用程序在隐藏自身时内部的行为方式,我们无法控制它,甚至对此知之甚少。我们需要从另一个方向来解决这个问题。

该应用程序位于 SysTray 中,等待通过用户鼠标单击激活,但我们无法自动执行该操作。但是还有另一种“激活”应用程序的方法,那就是再次运行 exe 文件。在这种情况下,它不会启动第二个实例,它只是重新激活现有实例。那么为什么不使用 exe 文件并以这种方式重新激活应用程序呢?这就是我们所做的,这是一个可行的解决方案。

于 2010-01-07T10:39:43.687 回答