需要用java在一个指定的cmd窗口中输入一个字母,例如“y”,再回车,分管够 关键问题是如何找到该cmd窗口 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 cmd窗口不是该程序创建的,也许能通过cmd窗口的标题找到该窗口,或者找到该cmd窗口的进程号,然后继续 只要你是用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了。 lz的问题问的很模糊阿,是要你自己打开一个cmd然后输入y\n呢,还是说是在已经打开的cmd窗口中寻找一个合适的窗口然后输入y\n呢? 诚招赴日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:[email protected]Tel:0411-84509856/84509836Mob:13889497710 只要你是用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了。 在已经打开的cmd窗口中寻找一个合适的窗口然后输入y\n那个程序试过了,非常感谢。但是我的最终需求是:在一个指定的cmd窗口(知道title)中,用程序模拟输入y回车。而且这个y必须能被先前运行的程序TScreenInput识别,并让TScreenInput做出正确的反应 操作cmd窗口对象不建议lz用java 找找JAVA进程管理方面的资料看看 如果能用其他语言写一个程序模拟,在当前激活cmd窗口中键入y回车也行啊,然后用java调用执行呗。进程没问题,关键是我用java Robot写的东西只在java自己的窗口中敲入y,郁闷。 这个你必须用C++写个DLL去查找窗口和操作窗口,然后在java中用jni来连接这个dll, 网上很多关于查找窗口的C++代码, 在看一下在java中怎么进行jni操作 to amingo: 你复制我的回复,意欲何为?? 内部类访问外部类中的局部变量final问题... 图片缩放失真问题 【推荐】 软件发布 关于openNMS/SNMP,求帮助! jfreechart 里面怎么能限定 y轴的最大数字呢? 超级求助 渥太华大学一年级java问题 加油 加油 ----关于用正则表达式匹配字符串的问题----- 如和读取TextField内容? 用sun.net.ftp包进行FTP上传时,如何在FTP服务器上创建新的目录? java线程的静态变量共享问题 jsp中如何实现断行! 请教高手关于Java 多线程同步的问题
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了。
技术要求:1.精通1门以上(包括1门)开发语言。会.net、Java、C语言者优先。
2.精通1种以上(包括1种)数据库。
有项目管理经验者优先。
学历要求:大专以上(包括大专),如果是自学考试的情况下,需要有学位证书。
工作地点:东京、关东地区、名古屋、京都等待遇情况:月工资:25-40万日元
加班费: 每天平均勤务8小时以上加班费为1800日元以上/H。例:当月勤务时间为260小时,工作日为20天的情况下,加班费为:18万日元。
年休假: 10天以上
保 险: 日本和国内(当将个人档案调到大连本社时)都有保险
其 他: 每年2次员工旅游(目前组织过的旅游地:冲绳2次、韩国1次、今年到塞班)
员工聚会平均1.5个月一次(公司报销路费和会餐费)。
报销在日本业余时间学习日语的费用等人力资源顾问:文先生
Email:[email protected]
Tel:0411-84509856/84509836
Mob:13889497710
只要你是用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了。