不懂
学习ing
帮您顶

解决方案 »

  1.   

    这个好像不是java的东西吧,你是调用windows API来实现来进程的操作和控制吧!
    这样的话最好到c++板块去问问!
    如果在java中获得一个javaw.exe的子进程句柄:你可以
    Process p=Runtime.getRuntime().exec("javaw -options");
    这样获得了一个代options参数的javaw子进程!
      

  2.   

    我上面的方法获得了一个javaw的子进程!
    然后你就可以用window API中的方法:
    HANDLE OpenProcess(DWORD dwDesiredAccess,bool bInheritHandle,DWORD dwProcessid);
    用这个windows API来获得那个进程对象的句柄!
    其中dwDesiredAccess事进程对象的访问权限!
    bInheritHandle事子进程获得该对象的访问权限
    dwProcessId就是进程的标识符!
    关于那个java中获得的子进程和这个api函数之间的通信,你就自己摸索吧!
    这个都是windows专区的东西!
      

  3.   

    谢谢zhutouzip了.
    那个JAVAW.EXE的PID我是知道的,就是想通过此PID获得JAVAW的主窗口Handle.我测试过其它程序在知道PID的情况下可以获得其窗口Handle,但这个Javaw.exe就是有点怪我怀疑它有没有
    Window,  但想想在Windows下的程序,还是应该有才对.其它我真正的需要是:  一个JAVAW.EXE运行后,另外的程序要请他通出来(而不是手动关闭),这样子如何让我的JAVA程序在JAVAW.EXE退出时执行一些操作,如CLOSE DB CONNECTION等。  若用java.exe,会弹出一个DOS窗口用手动的方法CLOSE那个DOS窗口,以下代码是可以得到执行的:
          Runtime.getRuntime().addShutdownHook(new Thread()
          {
              public void run()
              {
                //some code........
              }
          });但若用TerminateProcess()让其退出,就不行。请多多指导,先谢过。