2008-07-18
电信拨号器
关键字: 电信拨号程序、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();
}
}
你也可以自己运行一下代码,不过请确定你的网络是电信的。
评论
t0uch
2008-07-18
没什么出彩的地方,以前用asm写过一个,因为学校的用户名经过md5的。。。
jackzhangyunjie
2008-07-18
批处理,我也写的有呀,不过是兴趣所致,写一个玩玩,让大家共享下。
xiaoyu
2008-07-18
你还不如写一个批处理呢
xiaoyu
2008-07-18
你还不如写一个批处理呢
insiku
2008-07-18
基于Windows的rasdial吧?
貌似你程序还写错了
rasdial.exe entryname [username [password|*]] [/DOMAIN:domain]
[/PHONE:phonenumber] [/CALLBACK:callbacknumber]
[/PHONEBOOK:phonebookfile] [/PREFIXSUFFIX]
rasdial.exe [entryname] /DISCONNECT
rasdial.exe
=========
或者说 你变量名取的比较变态
貌似你程序还写错了
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
=========
或者说 你变量名取的比较变态
jackzhangyunjie
2008-07-18
晕,兄弟对不住呀,刚把代码给发上过,不好意思啦。
wolfbrood
2008-07-18
基本看完了lz的代码,觉得想法是好的,顶一个。当然代码也不错。
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 1614 次
- 性别:

- 来自: 郑州

- 详细资料
搜索本博客
最新评论
-
Dwr2+Struts2+Spring2.5+H ...
jackzhangyunjie 写道回复power_zl: 我看了你出现的错 ...
-- by power_zl -
Dwr2+Struts2+Spring2.5+H ...
回复power_zl: 我看了你出现的错误,这种错误一般情况下是因为你没有此 ...
-- by jackzhangyunjie -
Dwr2+Struts2+Spring2.5+H ...
严重: Context initialization failedorg.spr ...
-- by power_zl -
电子地图--MapABC研究( ...
呵呵,lz太言重了,我也是开玩笑而已。他们开放只是他们采集的城市基础数据,至于应 ...
-- by transist -
Dwr2+Struts2+Spring2.5+H ...
commons-fileupload-1.2.1.jar 这个可以不要吧!
-- by lijie250






评论排行榜