【问题标题】:I am trying to embed a program in my program, can I?我想在我的程序中嵌入一个程序,可以吗?
【发布时间】:2018-01-13 18:33:53
【问题描述】:

我想在我正在编写的另一个程序中运行一个程序(在本例中为记事本)。我希望记事本被限制在我可以定义的程序内的一个框内,比如 500 x 500。然后我可以在其中添加我的普通窗口组件,如文本和按钮。我尝试了 Runtime#exec();如下图:

private Main() {
    setSize(1920, 1080);
    setMinimumSize(new Dimension(1080, 720));
    setResizable(true);
    setLayout(new FlowLayout());
    setDefaultCloseOperation(EXIT_ON_CLOSE);

    try {
        Runtime runTime = Runtime.getRuntime();
        Process process = runTime.exec("notepad");

        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        process.destroy();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

我可以完美地启动记事本,但如果可能的话,我不确定如何将运行时添加到我的程序中(例如如何添加按钮)。有没有办法做到这一点?

【问题讨论】:

  • 我不知道如何将运行时添加到我的程序中你能具体点吗??
  • 确实很难对另一个程序施加约束并使其服从您的意愿。记事本有自己的想法。它不会想要配合你的限制。可以,但这可能是XY problem?你真正想做什么?可能有更好的方法。
  • 即使你能做到这一点,这很困难,你也会被历史上每个防病毒程序标记为戳戳和刺激其他软件的内存。
  • Java 没有直接的方法来控制记事本。只需直接在您的 Java 应用程序中构建一个简单的文本编辑器即可。

标签: java runtime.exec


【解决方案1】:

正如您提到的记事本,我们在这里谈论的是 Windows,因此 Winodws 设计了 ​​OLE 来实现这一点。

https://msdn.microsoft.com/en-us/library/windows/desktop/ms683898(v=vs.85).aspx

【讨论】:

    猜你喜欢
    • 2020-05-17
    • 2016-04-22
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    • 2015-08-29
    相关资源
    最近更新 更多