| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 632 人关注过本帖
标题:新手提问----帮我看看这个代码错在哪里,怎么改
只看楼主 加入收藏
whys
Rank: 1
等 级:新手上路
帖 子:50
专家分:8
注 册:2009-10-27
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
新手提问----帮我看看这个代码错在哪里,怎么改
程序代码:
import javax.swing.JOptionPane;

public class tss {


 /**
  * @param args
  */

 private static int tasklist1 = -1;
    public static void main(String[] args)
    {
       try {
         
       String cmd1 = "cmd.exe /c  tasklist";
       p =Runtime.getRuntime().exec(cmd1);
      StringBuffer out = new StringBuffer();
      byte[] b = new byte[1024];
      for (int n; (n = p.getInputStream().read(b)) != -1;) {
       out.append(new String(b, 0, n));
      }
      tasklist1=out.toString().indexOf("QQ.exe");//检查QQ进程
         } catch (Exception e1) {
       e1.printStackTrace();
      }
        
         if(tasklist1==-1){
         
         //程序在进程中没有发现
         }else{
          JOptionPane.showMessageDialog(null, "程序已经打开!", "警告", 1);
         }
    }

}

搜索更多相关主题的帖子: 代码 提问 
2010-04-20 11:42
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:20 
Process p =Runtime.getRuntime().exec(cmd1);

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-04-20 11:52
whys
Rank: 1
等 级:新手上路
帖 子:50
专家分:8
注 册:2009-10-27
收藏
得分:0 

谢谢

但这个代码怎么检测不到呀
2010-04-20 12:00
whys
Rank: 1
等 级:新手上路
帖 子:50
专家分:8
注 册:2009-10-27
收藏
得分:0 
这个代码也是一样,到底是我不会还是怎么样
程序代码:
import import /**

 * JAVA检测指定的进程是否在运行。

 *

 * @author JAVA世纪网(, )

 */
public class hg {
  public static void main(String[] args) {
    System.out.println(findProcess("alg.exe"));
  }
  /**
   * 检测程序。
   *
   * @param processName 线程的名字,请使用准确的名字
   * @return 找到返回true,没找到返回false
   */
  public static boolean findProcess(String alg.exe)) {
    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) {}
      }
    }
  }
}


2010-04-20 12:02
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
以下是引用whys在2010-4-20 11:42:40的发言:

import javax.swing.JOptionPane;
 
public class tss {
 
 /**
  * @param args
  */
 private static int tasklist1 = -1;
    public static void main(String[] args)
    {
       try {
         
       String cmd1 = "cmd.exe /c  tasklist";
       Process p =Runtime.getRuntime().exec(cmd1);
      StringBuffer out = new StringBuffer();
      byte[] b = new byte[1024];
      for (int n; (n = p.getInputStream().read(b)) != -1;) {
       out.append(new String(b, 0, n));
      }
      tasklist1=out.toString().indexOf("QQ.exe");//检查QQ进程
         } catch (Exception e1) {
       e1.printStackTrace();
      }
         
         if(tasklist1==-1){
         
         //程序在进程中没有发现
         }else{
          JOptionPane.showMessageDialog(null, "程序已经打开!", "警告", 1);
         }
    }
 
}
 


[ 本帖最后由 lampeter123 于 2010-4-20 12:31 编辑 ]

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-04-20 12:30
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
以下是引用whys在2010-4-20 12:00:22的发言:


谢谢

但这个代码怎么检测不到呀
可能与你的操作系统有关,你先运行命令CMD.exe tasklist测试下

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-04-20 12:49
linjx0123
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:279
专家分:1362
注 册:2006-4-7
收藏
得分:0 
回复 4楼 whys
程序代码:
import import /**
* JAVA检测指定的进程是否在运行。
*
* @author JAVA世纪网(, )
*/
public class hg {
   
    public static void main(String[] args) {
         System.out.println(findProcess("alg.exe"));
    }
   
  /**
   * 检测程序。
   *
   * @param processName 线程的名字,请使用准确的名字
   * @return 找到返回true,没找到返回false
   */
    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) {
                   
                }
            }
        }
    }
}

主要是括号匹配不正确,建议楼主写程序的时候采用缩写,规范程序。
2010-04-20 14:04
whys
Rank: 1
等 级:新手上路
帖 子:50
专家分:8
注 册:2009-10-27
收藏
得分:0 
以下是引用lampeter123在2010-4-20 12:49:29的发言:

可能与你的操作系统有关,你先运行命令CMD.exe tasklist测试下
竟然

图片附件: 游客没有浏览图片的权限,请 登录注册


我用XP的
2010-04-22 09:42
whys
Rank: 1
等 级:新手上路
帖 子:50
专家分:8
注 册:2009-10-27
收藏
得分:0 
以下是引用linjx0123在2010-4-20 14:04:06的发言:

import
import
/**
* JAVA检测指定的进程是否在运行。
*
* @author JAVA世纪网(, )
*/
public class hg {
   
    public static void main(String[] args) {
         System.out.println(findProcess("alg.exe"));
    }
   
  /**
   * 检测程序。
   *
   * @param processName 线程的名字,请使用准确的名字
   * @return 找到返回true,没找到返回false
   */
    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) {
                    
                }
            }
        }
    }
}
主要是括号匹配不正确,建议楼主写程序的时候采用缩写,规范程序。


也没判断出来,总是显示 false
2010-04-22 09:53
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
收藏
得分:0 
以下是引用whys在2010-4-22 09:42:19的发言:

竟然



我用XP的
图片附件: 游客没有浏览图片的权限,请 登录注册

我的XP可以

你的优秀和我的人生无关!!!!
    
    我要过的,是属于我自己的生活~~~
2010-04-22 10:26
快速回复:新手提问----帮我看看这个代码错在哪里,怎么改
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024773 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved