使用C#关闭子Java窗口

本文关键字:Java 窗口 使用 | 更新日期: 2023-09-27 18:26:57

我有一个在Windows上运行的java应用程序(javaw.exe),我想通过C#应用程序关闭子窗口。我可以通过应用程序选项卡下的任务管理器看到子窗口,但当我右键单击子窗口并单击转到进程时,它会将我带到进程选项卡下运行的javaw.exe进程。

我已经尝试过迭代活动进程来关闭每个窗口,但是,我找不到子java窗口,只能看到javaw进程。

Process[] childProcesses = Process.GetProcessesByName("javaw");

我搜索了互联网论坛,但没有找到一个合适的解决方案来处理在windows上运行的java应用程序,该应用程序将使用C#处理。我相信有一个明显的解决方案,所以我们非常感谢您的帮助。谢谢

使用C#关闭子Java窗口

如果我正确理解您的问题,您想关闭许多java应用程序中的一个或多个窗口吗?

javaw上没有子进程,只有JVM内部运行的线程。也许使用进程对象的Threads属性会有所帮助。

但即便如此,java应用程序中的所有图形对象都是AWT线程的规则。杀死它意味着关闭所有的窗户。

所以我认为不可能做你想做的事:/

您是否可以尝试获取子窗口的句柄,并使用p''Invoke方法和调用win32api向其发送消息?

也许这个答案可以涵盖这个想法:不能使用pinvoke将WM_CLOSE发送到Windows资源管理器窗口