0

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

我尝试遍历活动进程以关闭每个窗口,但是,我找不到子 java 窗口,只能看到 javaw 进程。

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

我搜索了互联网论坛,但找不到合适的解决方案来处理在 Windows 上运行的 Java 应用程序,以使用 C# 处理。我确信有一个明显的解决方案,因此非常感谢任何帮助。谢谢。

4

2 回答 2

0

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

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

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

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

于 2015-12-16T15:09:05.427 回答
0

您能否尝试获取子窗口的句柄并使用 P\Invoke 方法并调用 win32 api 向其发送消息?

也许这个答案可以涵盖这个想法:Cannot use pinvoke to send WM_CLOSE to a Windows Explorer window

于 2015-12-16T15:29:41.743 回答