如何让两个程序的数据交互

喜欢原味奶茶 2015-11-10 11:40:54
我想做一个程序,在我的程序里输入的数据会让它传给第三方程序,第三方的程序也要把数据回显到我的程序上的面板里。网上说用剪贴板,共享文件等等。我这里想知道的一个问题就是:如何让第三方程序后台运行?比如我想用我的程序去操作dos,那么我不希望dos在前台运行着,如果在前台运行着就没必要用我的程序了,我想怎么才能让第三方程序不显示在前台的条件下和前台程序数据交互。求大神指点!感激不敬!
...全文
445 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
BurnoutAg7 2019-01-23
  • 打赏
  • 举报
回复
感谢大佬的干货
喜欢原味奶茶 2015-11-15
  • 打赏
  • 举报
回复
引用 12 楼 Kermit_Lixuan的回复:
 public static boolean findProcess(String processName) 
  {  
    BufferedReader bufferedReader = null;  
    try 
    {  
      Process proc = Runtime.getRuntime().exec("tasklist /FI \"IMAGENAME eq " + processName + "\""); 
      bufferedReader = new BufferedReader(new InputStreamReader(proc.getInputStream()));  
      String line = null;  
      while ((line = bufferedReader.readLine()) != null)
      {  
        if (line.contains(processName))
        {  
          return true;  
        }  
     }  
      return false;  
    } catch (Exception ex)
    {  
      ex.printStackTrace();  
      return false;  
    } finally {  
      if (bufferedReader != null)
      {  
       try
       {  
          bufferedReader.close();  
       } catch (Exception ex) {}  
     }  
    }  
  }  
这个方法就是通过调用dos来查找正在运行的进程,希望对楼主有用。
主要是我想知道如何和进程通信!还有,我想要与其通信的程序是有界面的,首先我会先调用执行该程序,到如何让它不显示界面,让它自己在后台显示!有没有一个函数是让程序后台运行的?
Kermit_Lixuan 2015-11-13
  • 打赏
  • 举报
回复
 public static boolean findProcess(String processName) 
  {  
    BufferedReader bufferedReader = null;  
    try 
    {  
      Process proc = Runtime.getRuntime().exec("tasklist /FI \"IMAGENAME eq " + processName + "\""); 
      bufferedReader = new BufferedReader(new InputStreamReader(proc.getInputStream()));  
      String line = null;  
      while ((line = bufferedReader.readLine()) != null)
      {  
        if (line.contains(processName))
        {  
          return true;  
        }  
     }  
      return false;  
    } catch (Exception ex)
    {  
      ex.printStackTrace();  
      return false;  
    } finally {  
      if (bufferedReader != null)
      {  
       try
       {  
          bufferedReader.close();  
       } catch (Exception ex) {}  
     }  
    }  
  }  
这个方法就是通过调用dos来查找正在运行的进程,希望对楼主有用。
喜欢原味奶茶 2015-11-12
  • 打赏
  • 举报
回复
引用 4 楼 lone_cheerUp的回复:
第三方程序如果是后台程序就可以后台运行,他本身是有界面的没办法后台运行吧。
有界面的程序不能后台运行吗?
喜欢原味奶茶 2015-11-12
  • 打赏
  • 举报
回复
引用 5 楼 xuyiranxiaosa的回复:
第三方程序具体指的是什么啊?你可以通过Hessian进行数据的交互。
第三方是DOS系统,如何让dos不显示在桌面运行,
喜欢原味奶茶 2015-11-12
  • 打赏
  • 举报
回复
引用 6 楼 解开者的回复:
可以通过Process类发起后台进程,传入的字符串就和win+r输入字符串一个效果
被我的程序传入数据的程序有界面,想让它后台运行!我不能操控它去读共享文件!
喜欢原味奶茶 2015-11-11
  • 打赏
  • 举报
回复
引用 2 楼 WintelZhao的回复:
消息通信、管道通信都可以。
问题是如何让第三方程序后台运行?
xuyiranxiaosa 2015-11-11
  • 打赏
  • 举报
回复
第三方程序具体指的是什么啊?你可以通过Hessian进行数据的交互。
lone_cheerUp 2015-11-11
  • 打赏
  • 举报
回复
第三方程序如果是后台程序就可以后台运行,他本身是有界面的没办法后台运行吧。
飏飏一蝶 2015-11-11
  • 打赏
  • 举报
回复
好吧,我知道的最简单的方法是一个程序往文件里写东西,另一个则定期读取出来
解开者 2015-11-11
  • 打赏
  • 举报
回复
可以通过Process类发起后台进程,传入的字符串就和win+r输入字符串一个效果
WintelZhao 2015-11-10
  • 打赏
  • 举报
回复
消息通信、管道通信都可以。
心随自在飞 2015-11-10
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分 数据交互我只知道 Web Service ,其他的不会玩儿!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧