-2

我正在编写一个程序,它首先使用 JNI 显示 Java GUI,然后调用 Windows 简单 GUI。

如果我在不调用 Java GUI 的情况下调用 Windows 简单 GUI,它会显示在其他窗口的顶部,因此我可以在它启动后直接看到它。

问题是,如果我在调用 JAVA GUI 后调用 Windows 简单 GUI,它会在其他窗口的底部显示其窗口简单 GUI:其他 Windows 只是隐藏它。

这是一张图片,您可以看到我的简单 Windows GUI 在启动时已被 Visual Studio 隐藏。

在此处输入图像描述

4

1 回答 1

0

我不确定我是否理解了这个问题,但无论如何我都会尝试回答。我的理解是您正在启动 2 个程序,并且您想将其中一个程序带到桌面的前面。

我想您正在使用CreateProcess来启动程序。您可以在STARTUPINFO结构 ( wShowWindow ) 中设置一些标志,所以看看您是否可以使用它。

否则,您可以在启动两个程序后尝试调用ShowWindow(并可能等待 Java 程序启动)。您需要将窗口句柄传递给此函数。

您可以通过调用EnumWindows获取窗口句柄,使用GetWindowModuleFileName检查每个窗口的可执行文件名。

伪代码:

foreach window in EnumWindows()
    if GetWindowModuleFileName(window) == "program.exe"
        ShowWindow(window, ...)
于 2013-08-30T12:01:43.757 回答