Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 如何从SysTray恢复应用程序?ShowWindow不支持';无法帮助,因为句柄=0_.net_Systray_Showwindow - Fatal编程技术网

.net 如何从SysTray恢复应用程序?ShowWindow不支持';无法帮助,因为句柄=0

.net 如何从SysTray恢复应用程序?ShowWindow不支持';无法帮助,因为句柄=0,.net,systray,showwindow,.net,Systray,Showwindow,是否可以将已最小化到SysTray的第三方应用程序恢复 在最小化到任务栏的应用程序上调用ShowWindow是可以的,但是当应用程序最小化到SysTray时,它的句柄似乎被设置为零,当然ShowWindow找不到它。否;可以采取不同的方法来实现这一点(应用程序可能会在还原时关闭窗口并打开新副本,也可能只是隐藏原始窗口并在还原时显示)。应用程序不需要遵循特定的过程来实现此功能,因此也不需要遵循特定的过程来反转此功能 如果您有关于特定应用程序行为的信息,并且希望将其作为一个特定的案例来处理,那么这是

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


在最小化到任务栏的应用程序上调用ShowWindow是可以的,但是当应用程序最小化到SysTray时,它的句柄似乎被设置为零,当然ShowWindow找不到它。

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

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

编辑


您可以尝试使用来确定进程打开的窗口句柄(如果有)。这至少会告诉你它是在破坏还是隐藏窗口。

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

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

编辑


您可以尝试使用来确定进程打开的窗口句柄(如果有)。这至少会告诉你它是在破坏还是隐藏窗口。

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


它通过一个私有回调函数获得托盘图标通知,你自己不能伪造。假装鼠标点击是非常困难的,因为你无法找到图标的位置。我想你被卡住了。

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


它通过一个私有回调函数获得托盘图标通知,你自己不能伪造。假装鼠标点击是非常困难的,因为你无法找到图标的位置。我想你被卡住了。

亚当·罗宾逊和诺布兹给你的有用建议。帮助我看到我们正在尝试的可能甚至不可能。太多的问题取决于应用程序隐藏自身时的内部行为,而我们无法控制它,甚至对它了解不多。我们需要从另一个方向来处理这个问题


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

亚当·罗宾逊和诺布兹的有益建议。帮助我看到我们正在尝试的可能甚至不可能。太多的问题取决于应用程序隐藏自身时的内部行为,而我们无法控制它,甚至对它了解不多。我们需要从另一个方向来处理这个问题


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

当你说句柄“设置为零”时,你是如何获得窗口句柄的?从进程中,通过process.GetProcessesByName,然后使用myProcess.MainWindowHandle。可能是我弄乱了进程句柄和Windows句柄。有什么建议吗?当你说句柄“设置为零”时,你是如何从进程获得窗口句柄的?通过process.getProcessByName,然后使用myProcess.MainWindowHandle。可能是我弄乱了进程句柄和Windows句柄。有什么建议吗?这是我的一个特定应用targeting@hawbsl:这样更好,但您需要确切了解该应用程序的工作原理,才能使其有所帮助。请参阅编辑。有用的建议,谢谢。下载了Process Explorer并查看了它我是一个特定的应用程序targeting@hawbsl:这样更好,但您需要确切了解该应用程序的工作原理,才能使其有所帮助。请参阅编辑。有用的建议,谢谢。下载了Process Explorer并进行了查看