需要用java在一个指定的cmd窗口中输入一个字母,例如“y”,再回车,分管够
关键问题是如何找到该cmd窗口
问题点数:100、回复次数:18Top
1 楼zdsdiablo(十分钟年华老去)回复于 2006-09-11 16:53:51 得分 0
要指定的窗口么,那最好创建的时候留着那个引用Top
2 楼lamyoyo(爱虫)回复于 2006-09-11 17:13:03 得分 0
cmd窗口不是该程序创建的,也许能通过cmd窗口的标题找到该窗口,或者找到该cmd窗口的进程号,然后继续Top
3 楼kinsey0514(春天的老黄牛)回复于 2006-09-11 19:49:01 得分 0
UPTop
4 楼terry_yip(我只回答引起我思考的问题)回复于 2006-09-11 23:36:26 得分 100
只要你是用java来调用CMD的,就可以找到cmd窗口。我花了半个小时帮你写了个例子。
----------------------------------------------------------
这个class,如果在屏幕上输入y,就马上把E:\\WinReg.exe另存为C:\\ok.exe,请在E:放一个WinReg.exe,并把下面的文件编译后的TScreenInput.class,放到E:根目录下。
import java.io.File;
import java.io.InputStream;
public class TScreenInput
{
public static void main(String[] args) throws Exception
{
InputStream in=null;
while(true)
{
in=System.in;
char c=(char)in.read();
if(c=='y')
{
File f=new File("E:\\WinReg.exe");
f.renameTo(new File("C:\\ok.exe"));
System.out.println("copy complete!!");
break;
}
}
}
}
------------------------------------------------------------------
下面这个文件是调用cmd窗口,并执行"java -classpath E:\\ TScreenInput"来运行TScreenInput,并输入'Y',让TScreenInput来执行文件另存为的操作。
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class TTest
{
public static void main(String[] args) throws IOException
{
Process pro = Runtime.getRuntime().exec("cmd.exe /c java -classpath E:\\ TScreenInput");
InputStream is = pro.getErrorStream();
InputStream is1=pro.getInputStream();
//下面五行为关键语句
OutputStream os=pro.getOutputStream();
BufferedOutputStream bos=new BufferedOutputStream(os);
byte b2[]=new byte[]{(byte)'y',(byte)'\n'};
bos.write(b2);
bos.flush();
byte b;
while ((b = (byte) is.read()) != -1)
{
//输出正常输出的信息
System.out.print((char)b);
}
while ((b = (byte) is1.read()) != -1)
{
//输出出错信息
System.out.print((char)b);
}
}
}
执行TTest, 接着,你就可以看到E:\\WinReg.exe被复制到C:下,并改名为ok.exe了。
Top
5 楼emin_lee(emin)回复于 2006-09-12 08:59:55 得分 0
mark!Top
6 楼YYAAZZ()回复于 2006-09-12 10:22:07 得分 0
IES是大连IT猎头行业强势企业,致力于IT行业内的猎头服务。公司客户群主要是世界500强IT企业及国内优秀的大型软件研发及外包企业。公司在同行业中有良好的信誉和口碑,在众多500强客户中取得高度评价。现受委托企业高薪招聘以下职位:
●世界500强IT企业(全日资企业,自主研发,新企业发展空间大,工作地点:大连)
* java / VB方向(其他语言也可)
职位:SE(与其他公司PL/PM相当)
人数:不限
学历:大学本科以上
外语:英语四级、日语国际1级相当
经验:具有3年以上开发管理经验,要求日语口语流利,优秀的沟通和协调能力,了解日本商务礼仪及日本文化
内容:直接归属开发部长领导,到日本本社带回项目,并带领手下完成项目。
相关待遇:
1 基本工资 7000 – 10000 RMB
2 5险1金 (40%住房公积金:个人15% 公司25%)
3 年终奖金 (2月工资)
4 交通补贴 (100/月)
5 午餐补贴 (150/月)
6 电话补贴 (300/月)
7 取暖费 ( 100/月 )
8 外语补贴 ( 有等级证书,依照等级不等 )
9 带薪休假 ( 7日 / 年 ,最多15日 / 年 )
* 加班很少!
*java 方向
职位:PG
人数:不限
学历:大学本科以上
外语:日语国际3级
经验:具有至少1年以上Java对日项目工作经验,并有Web,Java,Struts相关工作经验,能够充分理解式样。
相关待遇:
1 5险1金 (40%住房公积金:个人15% 公司25%)
2 加班费 (按照国家规定给与相应加班费)
3 年终奖金 (2月工资)
4 带薪休假 ( 7日 / 年 ,最多15日 / 年 )
5 交通补贴 (100/月)
6 午餐补贴 (150/月)
7 取暖费 ( 100/月 )
8 外语补贴 ( 有等级证书,依照等级不等 )
诚招赴日SE(10人)
培养方向:常驻日本从事软件开发工作,熟悉日本客户工作习惯、掌握客户的软件开发管理。有机会做真正的对日软件开发的桥梁和管理者。
日语要求:能够直接和日本客户进行作业会话,对日开发经验2年以上(如果日语非常好1年也可)。
技术要求:1.精通1门以上(包括1门)开发语言。会.net、Java、C语言者优先。
2.精通1种以上(包括1种)数据库。
有项目管理经验者优先。
学历要求:大专以上(包括大专),如果是自学考试的情况下,需要有学位证书。
工作地点:东京、关东地区、名古屋、京都等
待遇情况:月工资:25-40万日元
加班费: 每天平均勤务8小时以上加班费为1800日元以上/H。例:当月勤务时间为260小时,工作日为20天的情况下,加班费为:18万日元。
年休假: 10天以上
保 险: 日本和国内(当将个人档案调到大连本社时)都有保险
其 他: 每年2次员工旅游(目前组织过的旅游地:冲绳2次、韩国1次、今年到塞班)
员工聚会平均1.5个月一次(公司报销路费和会餐费)。
报销在日本业余时间学习日语的费用等
●世界500强IT企业(全日资企业,自主研发,非外包,工作地点:大连)
java 方向
职位:应用软件PL / PM
人数:2人
学历:大学本科以上
外语:英语四级、日语国际二级
经验:具有3/5年以上Web,Java,Struts相关工作经验,要求担当过PL或Sub-Leader
C / C++ 方向
职位:应用软件PL / PM 高级程序员
人数:8人
学历:大学本科以上
外语:英语四级、日语国际二级
经验:具有3/5年以上C / C++相关工作经验,要求担当过PL或Sub-Leader
相关待遇:
1 5险1金(40%住房公积金:个人15% 公司25%)
2 加班费(按照国家规定给与相应加班费)
3 每年年终奖(3月工资左右)
4 职务津贴 (PL:1000 Spl:500)
5 每年一次调薪 (按百分比,工资越高调动越大)
6 取暖费 ( 国家规定 )
7 带薪休假
● 世界500强IT企业(全日资企业,外包,工作地点:大连 / 东京)
月薪不低于30万日元
java 方向
职位:SE
人数:不限
学历:大学本科以上
外语:日语国际二级相当
经验:具有至少1年以上Java对日项目相关工作经验
C / C++ 方向
职位:SE
人数:不限
学历:大学本科以上
外语:日语国际二级相当
经验:具有至少1年以上C / C++对日项目相关工作经验
.NET 方向
职位:SE
人数:不限
学历:大学本科以上
外语:日语国际二级相当
经验:具有至少1年以上.net对日项目相关工作经验
人力资源顾问:文先生
Email:wennansong@gmail.com
Tel:0411-84509856/84509836
Mob:13889497710
Top
7 楼whycloud(云木)回复于 2006-09-12 13:22:37 得分 0
System.inTop
8 楼DeepNightTwo(深夜两点)回复于 2006-09-12 15:07:55 得分 0
lz的问题问的很模糊阿,是要你自己打开一个cmd然后输入y\n呢,还是说是在已经打开的cmd窗口中寻找一个合适的窗口然后输入y\n呢?Top
9 楼YYAAZZ()回复于 2006-09-12 15:22:03 得分 0
诚招赴日SE(10人)
培养方向:常驻日本从事软件开发工作,熟悉日本客户工作习惯、掌握客户的软件开发管理。有机会做真正的对日软件开发的桥梁和管理者。
日语要求:能够直接和日本客户进行作业会话,对日开发经验2年以上(如果日语非常好1年也可)。
技术要求:1.精通1门以上(包括1门)开发语言。会.net、Java、C语言者优先。
2.精通1种以上(包括1种)数据库。
有项目管理经验者优先。
学历要求:大专以上(包括大专),如果是自学考试的情况下,需要有学位证书。
工作地点:东京、关东地区、名古屋、京都等
待遇情况:月工资:25-40万日元
加班费: 每天平均勤务8小时以上加班费为1800日元以上/H。例:当月勤务时间为260小时,工作日为20天的情况下,加班费为:18万日元。
年休假: 10天以上
保 险: 日本和国内(当将个人档案调到大连本社时)都有保险
其 他: 每年2次员工旅游(目前组织过的旅游地:冲绳2次、韩国1次、今年到塞班)
员工聚会平均1.5个月一次(公司报销路费和会餐费)。
报销在日本业余时间学习日语的费用等
人力资源顾问:文先生
Email:xuehuan830717@hotmail.com
Tel:0411-84509856/84509836
Mob:13889497710
Top
10 楼amingo(Atlas 新技术讨论群:6455130(群主))回复于 2006-09-12 23:44:00 得分 0
只要你是用java来调用CMD的,就可以找到cmd窗口。我花了半个小时帮你写了个例子。
----------------------------------------------------------
这个class,如果在屏幕上输入y,就马上把E:\\WinReg.exe另存为C:\\ok.exe,请在E:放一个WinReg.exe,并把下面的文件编译后的TScreenInput.class,放到E:根目录下。
import java.io.File;
import java.io.InputStream;
public class TScreenInput
{
public static void main(String[] args) throws Exception
{
InputStream in=null;
while(true)
{
in=System.in;
char c=(char)in.read();
if(c=='y')
{
File f=new File("E:\\WinReg.exe");
f.renameTo(new File("C:\\ok.exe"));
System.out.println("copy complete!!");
break;
}
}
}
}
------------------------------------------------------------------
下面这个文件是调用cmd窗口,并执行"java -classpath E:\\ TScreenInput"来运行TScreenInput,并输入'Y',让TScreenInput来执行文件另存为的操作。
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class TTest
{
public static void main(String[] args) throws IOException
{
Process pro = Runtime.getRuntime().exec("cmd.exe /c java -classpath E:\\ TScreenInput");
InputStream is = pro.getErrorStream();
InputStream is1=pro.getInputStream();
//下面五行为关键语句
OutputStream os=pro.getOutputStream();
BufferedOutputStream bos=new BufferedOutputStream(os);
byte b2[]=new byte[]{(byte)'y',(byte)'\n'};
bos.write(b2);
bos.flush();
byte b;
while ((b = (byte) is.read()) != -1)
{
//输出正常输出的信息
System.out.print((char)b);
}
while ((b = (byte) is1.read()) != -1)
{
//输出出错信息
System.out.print((char)b);
}
}
}
执行TTest, 接着,你就可以看到E:\\WinReg.exe被复制到C:下,并改名为ok.exe了。
Top
11 楼lamyoyo(爱虫)回复于 2006-09-14 16:38:00 得分 0
在已经打开的cmd窗口中寻找一个合适的窗口然后输入y\n
那个程序试过了,非常感谢。但是我的最终需求是:在一个指定的cmd窗口(知道title)中,用程序模拟输入y回车。而且这个y必须能被先前运行的程序TScreenInput识别,并让TScreenInput做出正确的反应
Top
12 楼amozon(SUNNY是老婆,JAVA是情人)回复于 2006-09-14 17:09:13 得分 0
操作cmd窗口对象不建议lz用javaTop
13 楼theforever(碧海情天)回复于 2006-09-14 17:51:26 得分 0
找找JAVA进程管理方面的资料看看Top
14 楼lamyoyo(爱虫)回复于 2006-09-14 18:05:05 得分 0
如果能用其他语言写一个程序模拟,在当前激活cmd窗口中键入y回车也行啊,然后用java调用执行呗。进程没问题,关键是我用java Robot写的东西只在java自己的窗口中敲入y,郁闷。Top
15 楼chinagaici(山沟里跑出来的穷小子 )回复于 2006-09-15 13:11:08 得分 0
这个你必须用C++写个DLL去查找窗口和操作窗口,然后在java中用jni来连接这个dll, 网上很多关于查找窗口的C++代码, 在看一下在java中怎么进行jni操作Top
16 楼terry_yip(我只回答引起我思考的问题)回复于 2006-09-17 17:02:07 得分 0
to amingo: 你复制我的回复,意欲何为??
Top
17 楼gongzhy(2369)回复于 2006-09-18 08:52:46 得分 0
顶一下Top
18 楼logonin(生的伟大,活的憋屈!)回复于 2006-09-18 17:37:11 得分 0
尊重别人的劳动成果!Top




