我想用JAVA做一个任务管理器,但有些不懂,请高手帮帮我

Dancingsky 2008-03-31 03:19:23
怎么样用JAVA取得系统进程及相关信息.
怎么关机,重启.
取得用户名
结束进程,新建进程.
...全文
234 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
helanpiaoxue 2008-04-10
  • 打赏
  • 举报
回复
Good luck!
nethou 2008-04-10
  • 打赏
  • 举报
回复
用java做这个。不专业啊。
ariesying 2008-04-10
  • 打赏
  • 举报
回复
找DLL吧。找到了就不难了
dasong2410 2008-04-09
  • 打赏
  • 举报
回复
不怎么好做
Dancingsky 2008-04-09
  • 打赏
  • 举报
回复
谢谢各位的建议!!
我会好好搞的
这是我的毕业设计,
我知道C比较好做,可是我真的不会,没办法。
cl55 2008-04-08
  • 打赏
  • 举报
回复
用一些现成的工具生成com的wrapper,然后再去通过wrapper去调用com(dll),别直接去用jni,麻烦。
momo1985 2008-04-08
  • 打赏
  • 举报
回复
谁让JAVA的优势在与跨平台呢,底层交互方面比较弱啦。还是建议你学点c,写个DLL然后用JAVA调用
hmsuccess 2008-04-06
  • 打赏
  • 举报
回复
学习,不过还是觉得jni调用dll要好一点
kingaking 2008-04-06
  • 打赏
  • 举报
回复
List list = new ArrayList(); 接口引用指向实现类对象,很正常啊,难道是没用泛型的缘故还是没导入util包?
taolei 2008-04-05
  • 打赏
  • 举报
回复
很好,很勇敢
林g 2008-04-03
  • 打赏
  • 举报
回复
高人就是不同
曾在天涯 2008-04-03
  • 打赏
  • 举报
回复
dll还是比较麻烦的
chensjmail 2008-04-03
  • 打赏
  • 举报
回复
开关机注销重启,
锁定工作站,
关闭显示器,
启动指定程序,
我知道有人有dll可以给java调的,可是他要钱,
所以还是你自己找吧,
不是太难。
anyonetff 2008-04-02
  • 打赏
  • 举报
回复
ProcessInfoObj infoObj;
这是一个用户定义的类,用于结构化存储进程基本信息。

你在while循环中加入一句:System.out.println(str);
就可以输出进程信息的格式化文本
"System Idle Process","0","Services","0","24 K","Unknown","NT AUTHORITY\SYSTEM","1:44:03","��ȱ"
"System","4","Services","0","1,828 K","Unknown","��ȱ","0:01:08","��ȱ"
"smss.exe","436","Services","0","696 K","Unknown","NT AUTHORITY\SYSTEM","0:00:00","��ȱ"
我这边得到的输出是这样的。

那么,可以分析出来,字符串的分隔符是 "," (注意,包含引号哦),接下来就是把它写入自定义的ProcessInfoObj类(这个不用教你了吧),再压入ArrayList即可。

至于List类,可以直接初始化为ArrayList实例,不过这里编译是会出现warnning的,没有关系。
Dancingsky 2008-04-01
  • 打赏
  • 举报
回复
5楼,也就是说我还要知道我应该知道要调用哪些DLL

我到哪里去找我哪些DLL对我有用.
iskyshop 2008-04-01
  • 打赏
  • 举报
回复
JNI调用本地的dll
Dancingsky 2008-04-01
  • 打赏
  • 举报
回复
各位达人不要说得这么抽像,最好有例子,如怎么样调用API
Dancingsky 2008-04-01
  • 打赏
  • 举报
回复
这是取得进程的代码,但是有问题帮我解决下
取得进程:
private List getProcessList() {
List list = new ArrayList(); //这里我的JB2006报错,可是这样直接创建吗?
Runtime time = Runtime.getRuntime();
try {
Process process = time.exec("cmd exe /c tasklist /v /nh /fo csv");
InputStream stream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(
stream));

String str = reader.readLine();
while (str != null) {
System.out.println(str);
if (str != null && !str.equals("")) {
str = str.substring(1, str.length()-1);
String[] strs = str.split("\",\"");
ProcessInfoObj infoObj = new ProcessInfoObj(); //ProcessInfoObj这是个什么东西,jdk1.5有吗没有找到啊
infoObj.setProcessID(strs[1]);
infoObj.setProcessName(strs[0]);
infoObj.setProcessOwner(strs[6]);
infoObj.setProcessState(strs[5]);
infoObj.setProcessTitle(strs[8]);
infoObj.setRunTime(strs[7]);
infoObj.setSessionID(strs[3]);
infoObj.setSessionName(strs[2]);
infoObj.setUserMemory(strs[4]);
list.add(infoObj);
}
str = reader.readLine();
}
} catch (IOException e) { // TODO Auto-generated catch block
e.printStackTrace();
}

return list;
}
guofei_gf 2008-03-31
  • 打赏
  • 举报
回复
可能要用JNDI吧
Dancingsky 2008-03-31
  • 打赏
  • 举报
回复
不是的,C我是一点都不懂,只能用J来做了
加载更多回复(1)

62,623

社区成员

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

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