浏览 354 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-08-13 关键字: 电信拨号程序、swing
公司用的是电信的网络,前段时间公司的电脑总是拨不上去号,自己写了一个基于Java的电信拨号程序,感兴趣的朋友可以下载下看看。
下面是拨号程序的原代码,大家可以看看,有什么不合理的地方请指出来。
package com.jack.telecom.dial;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class Dial extends JFrame{
private JLabel lblConName;
private JTextField txtConName;
private JLabel lblConNum;
private JTextField txtConNum;
private JLabel lblStartNum;
private JComboBox cmbStartNum;
private JLabel lblMaxNum;
private JComboBox cmbEndNum;
private JLabel lblPwd;
private JPasswordField txtPwd;
private JLabel label;
private JLabel lblEndMessage;
private JLabel lblStartMessage;
private JLabel lblConNameMessage;
private JTextArea txaConMessage;
private JLabel lblMessage;
private JTextArea txaMessage;
private JButton btnConn;
private StringBuffer showMessage;
private String conNum;
private String resultStr = "";
public Dial() {
initComponents();
this.setTitle("电信拨号程序");
this.getContentPane().setLayout(null);
this.setSize(400, 500);
this.setVisible(true);
// this.setBounds(100, 100, 400, 472);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void initComponents() {
lblConName = new JLabel();
lblConName.setText("网络连接名称:");
lblConName.setBounds(10, 26, 91, 18);
this.getContentPane().add(lblConName);
txtConName = new JTextField();
txtConName.setText("jack");
txtConName.setBounds(107, 24, 87, 22);
this.getContentPane().add(txtConName);
lblConNum = new JLabel();
lblConNum.setText("连接帐号:");
lblConNum.setBounds(10, 54, 66, 18);
this.getContentPane().add(lblConNum);
txtConNum = new JTextField();
txtConNum.setText("n037113051");
txtConNum.setBounds(107, 50, 87, 22);
this.getContentPane().add(txtConNum);
lblStartNum = new JLabel();
lblStartNum.setText("起始数:");
lblStartNum.setBounds(10, 103, 66, 18);
this.getContentPane().add(lblStartNum);
cmbStartNum = new JComboBox();
cmbStartNum.setBounds(107, 99, 87, 27);
this.getContentPane().add(cmbStartNum);
lblMaxNum = new JLabel();
lblMaxNum.setText("最大拨号数:");
lblMaxNum.setBounds(10, 138, 91, 18);
this.getContentPane().add(lblMaxNum);
cmbEndNum = new JComboBox();
cmbEndNum.setBounds(107, 132, 87, 27);
for (int i = 1; i <= 99; i++) {
cmbStartNum.addItem(i);
cmbEndNum.addItem(i);
}
this.getContentPane().add(cmbEndNum);
lblPwd = new JLabel();
lblPwd.setText("密码:");
lblPwd.setBounds(10, 179, 91, 18);
this.getContentPane().add(lblPwd);
txtPwd = new JPasswordField();
txtPwd.setText("123456");
txtPwd.setActionCommand("*");
txtPwd.setBounds(107, 177, 94, 22);
this.getContentPane().add(txtPwd);
label = new JLabel();
label.setText("默认密码为123456");
label.setBounds(211, 179, 118, 18);
this.getContentPane().add(label);
lblEndMessage = new JLabel();
lblEndMessage.setText("选择您要进行拨号的最大限制");
lblEndMessage.setBounds(200, 138, 178, 18);
this.getContentPane().add(lblEndMessage);
lblStartMessage = new JLabel();
lblStartMessage.setText("选择您要进行拨号的起始数");
lblStartMessage.setBounds(200, 103, 178, 18);
this.getContentPane().add(lblStartMessage);
lblConNameMessage = new JLabel();
lblConNameMessage.setText("此名称为您拨号连接的名称");
lblConNameMessage.setBounds(200, 26, 178, 18);
this.getContentPane().add(lblConNameMessage);
txaConMessage = new JTextArea();
String msg = "请将您拨号帐号的前10位写上\n其中最后2位可以修改";
txaConMessage.setText(msg);
txaConMessage.setBounds(200, 54, 158, 40);
this.getContentPane().add(txaConMessage);
lblMessage = new JLabel();
lblMessage.setText("连接显示信息:");
lblMessage.setBounds(10, 248, 118, 18);
this.getContentPane().add(lblMessage);
txaMessage = new JTextArea();
txaMessage.setEditable(false);
JScrollPane scroll = new JScrollPane(txaMessage,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroll.setBounds(10, 272, 368, 155);
this.getContentPane().add(scroll);
btnConn = new JButton();
btnConn.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
Thread t = new Thread() {
public void run() {
Process p = null;
String conn = txtConNum.getText();
int startNum = ((Integer) cmbStartNum.getSelectedItem()).intValue();
int endNum = ((Integer) cmbEndNum.getSelectedItem()).intValue();
String user = txtConName.getText();
String password = txtPwd.getText();
showMessage = new StringBuffer();
for (int i = startNum; i < endNum; i++) {
if (i < 10) {
conNum = conn + "0" + i;
} else {
conNum = conn + i;
}
try {
p = Runtime.getRuntime().exec(
"rasdial.exe " + user + " " + conNum
+ " " + password);
int result = p.waitFor();
if (result == 0) {
resultStr = "连接成功";
// break;
} else {
resultStr = result + "";
}
showMessage.append("当前连接帐号为:" + conNum + "\n"
+ "连接结果:" + resultStr + "\n");
txaMessage.setText(showMessage.toString());
// new Thread().start();
// showMsg(conNum, resultStr);
// System.out.println("得到的数据:" + conNum + "\n" +
// "连接结果:"
// + resultStr + "\n");
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
};
t.start();
}
});
btnConn.setText("开始拨号");
btnConn.setBounds(107, 214, 106, 28);
this.getContentPane().add(btnConn);
}
public void radial(String conNum,int startNum,int endNum,String user,String password){
Process p = null;
String conn = txtConNum.getText();
showMessage = new StringBuffer();
for (int i = startNum; i < endNum; i++) {
if (i < 10) {
conNum = conn + "0" + i;
} else {
conNum = conn + i;
}
try {
p = Runtime.getRuntime().exec(
"rasdial.exe " + user + " " + conNum
+ " " + password);
int result = p.waitFor();
if (result == 0) {
resultStr = "连接成功";
// break;
} else {
resultStr = result + "";
}
showMessage.append("当前连接帐号为:" + conNum + "\n"
+ "连接结果:" + resultStr + "\n");
txaMessage.setText(showMessage.toString());
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
public static void main(String[] args) {
Dial d = new Dial();
}
}
你也可以自己运行一下代码,不过请确定你的网络是电信的。 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-07-18
基本看完了lz的代码,觉得想法是好的,顶一个。当然代码也不错。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-07-18
晕,兄弟对不住呀,刚把代码给发上过,不好意思啦。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-07-18
基于Windows的rasdial吧?
貌似你程序还写错了 p = Runtime.getRuntime().exec((new StringBuilder("rasdial.exe ")).append(user).append(" ").append(conNum).append(" ").append(password).toString());
rasdial.exe entryname [username [password|*]] [/DOMAIN:domain] [/PHONE:phonenumber] [/CALLBACK:callbacknumber] [/PHONEBOOK:phonebookfile] [/PREFIXSUFFIX] rasdial.exe [entryname] /DISCONNECT rasdial.exe ========= 或者说 你变量名取的比较变态 |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-18
你还不如写一个批处理呢
|
|
| 返回顶楼 | |
|
最后更新时间:2008-07-18
你还不如写一个批处理呢
|
|
| 返回顶楼 | |
|
最后更新时间:2008-07-18
批处理,我也写的有呀,不过是兴趣所致,写一个玩玩,让大家共享下。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-07-18
没什么出彩的地方,以前用asm写过一个,因为学校的用户名经过md5的。。。
|
|
| 返回顶楼 | |







