Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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
Java 从进程ID获取一个对象_Java_Windows_Jna - Fatal编程技术网

Java 从进程ID获取一个对象

Java 从进程ID获取一个对象,java,windows,jna,Java,Windows,Jna,我正在开发一个Java应用程序。在那里,我想开始一个过程。这是由JNA 4.0框架capsel Kernel32.dll完成的 现在我想通过应用程序的进程id获得一个对象 这是我的密码: 现在,如何从进程Id获取对象?是否有任何理由不使用Runtime.getRuntime.exec方法?是的,我想在后台以进程的形式启动exe。我想指导这个过程。你到底希望得到什么?您可以使用PID访问进程,但这不会让您访问进程的内存。不需要在标题中添加主标记。我希望获得一个强制对象,以便可以使用此对象执行操作

我正在开发一个Java应用程序。在那里,我想开始一个过程。这是由JNA 4.0框架capsel Kernel32.dll完成的

现在我想通过应用程序的进程id获得一个对象

这是我的密码:
现在,如何从进程Id获取对象?

是否有任何理由不使用Runtime.getRuntime.exec方法?是的,我想在后台以进程的形式启动exe。我想指导这个过程。你到底希望得到什么?您可以使用PID访问进程,但这不会让您访问进程的内存。不需要在标题中添加主标记。我希望获得一个强制对象,以便可以使用此对象执行操作
package de.test.windows;

import com.sun.jna.Pointer;
import com.sun.jna.platform.win32.Kernel32;
import com.sun.jna.platform.win32.WinBase;
import com.sun.jna.platform.win32.WinDef;

public class TestWindows {

    public static void main(String[] args) {
        WinBase.STARTUPINFO startupInfo = new WinBase.STARTUPINFO();
        startupInfo.dwFlags = 1;
        WinBase.PROCESS_INFORMATION.ByReference processInformation = new WinBase.PROCESS_INFORMATION.ByReference();

        boolean status = Kernel32.INSTANCE.CreateProcess(null, "C:\\Program Files\\MyProgram\\Program.exe", null, null, true, new WinDef.DWORD(0), Pointer.NULL, System.getProperty("java.io.tmpdir"), startupInfo, processInformation);

        if (status) {
            System.out.println("Process-ID: " + processInformation.dwProcessId);
        }
    }
}