校园网登陆器vc修改版
[ 为什么要使用这个登陆器 ]
如果你使用从学校下载的登陆器的时候不是经常的掉线那就不必使用这个登陆器了。
[ 使用篇 ]
1。把下载的gwlogina.ocx放到C:\windows\system32目录下。
2。win+R,输入regsvr32 C:\windows\system32\awlogina.ocx,注册该控件。
3。用记事本打开Login.htm这个网页文件,在页面source code的最后部分找到这段代码
function Login()
{
gwctrl.SetServer("202.194.104.36",1235);
gwctrl.settime(1)
gwctrl.Login("050200XX","*******");
}
function Hide()
{
gwctrl.HideWnd();
}
把050200XX 和 ******* 都替换成自己的登陆帐号和密码,然后保存。
4。注销一下(推荐)
5。打开Login.htm文件,会提示“在此页上的ActiveX控件和本页上的其他部分的交互可能不安全.您向允许这种交互吗?”,点允许就可以了,如果浏览器上方出现黄色的bar,记得要点击选允许ActiveX允许才可以。
6。不要关掉这个页面,现在可以放心的上网,挂QQ,拿toco/emule什么的下载速度只有1K左右的但是你又非常需要的东西啦~
[ 原理篇 ]
使用eXeScope分析gwlogina.ocx的时候,发现这个:
Class GWLoginA; // GWLoginA Control
GUID={FC9629FF-5B3B-49DF-9E1A-31A6C8BB1150};
function GetState: I2;
function SetTime(iTime:I2);
function Login(strUser:BSTR; strPass:BSTR): I2;
function SetServer(strAddr:BSTR; strPort:BSTR);
function SetUserPass(strUser:BSTR; strPass:BSTR);
function AboutBox;
根据function的name和code的standard来看,setTime应该是设置一个时间值,这个inteval是最可能造成我们掉线的,Login函数里的strUser strPass应该是用户名和密码了,setServer当然就是设置我们学校的服务器.SetUserPass可以重设密码。但是没有发现这个“关于”对话框,从资源中可以看到:
GWLoginA Control, Version 1.0 //标题栏文字
Copyright (C) 2003, wiscom //内容
DefPushButton:OK //默认按钮是OK,并且出于onFocus状态
but,我没找到....
[ 编程篇 ]
<OBJECT ID="gwctrl" WIDTH=0 HEIGHT=0 CLASSID="clsid:FC9629FF-5B3B-49DF-9E1A-31A6C8BB1150" CODEBASE="./GWLoginA.CAB#Version=1.0.0.3" ></OBJECT>
使用OBJECT把这个ocx拿进来使用。只是这个才使得我们必须要让允许系统加载ActiveX,这是安全问题所 引起的。
<script language="javascript">
var url = "";
var first_login = true;
var i = 0;
//var win = ;
function GetState()
{
var state = gwctrl.GetState(); //就是ocx里的那个GetState
switch(state)
{
case 1:
{
document.frmMain.state.value = "已登录";
if(first_login && url != "")
{
first_login = false;
window.opener.location.href = url;
window.opener.focus();
return;
}
}
break;
case 2:
document.frmMain.state.value = "未登录";
break;
case 3:
document.frmMain.state.value = "正在登录";
case 4:
document.frmMain.state.value = "登录失败";
break;
}
i ++;
//if(i > 20)
//i = 0;
setTimeout("GetState()",5); //检测现在的状态,是否已经登陆.这里是5毫秒的
if(i==5)
Login();
}
当用户需要登陆时,点击登陆按钮,就触发这个事件:
function Login()
{
gwctrl.SetServer("202.194.104.36",1235);
gwctrl.settime(1)
gwctrl.Login("登陆名","登陆密码");
}
[ 结束语 ]
这个登陆器使用起来麻烦了一点,推荐给喜欢DIYer和对计算机有一定了解的朋友使用,MM们和刚刚使用 计算机的朋友可以使用我们森科网络的张旋编写的修改版的登陆器(由于作者没有公布下载,这里先不提供,有需要者可mail来免费索取),按照安装向导的提示一步一步完成就可 以了。我们现在正在准备将这个程序移至到.net平台上来开发,使之更为方便,功能更完善。谢谢大家的支持。
P.S. 学校的登陆器如果登陆不上了我们的也肯定不能用的,如果一个宿舍里别人的可以登陆而你的却登陆 不了,在查看网线有没有问题后你可以注销一下在运行程序,一般就可以登陆了。当然,你得缴费冲值以后 啦。快速的注销/重启/关机方法:按下Ctrl+Alt+Del后,按住Ctrl点关机菜单里的"注销",XP会快速的实现,当然,只能是XP了,2003还不知道改怎样快速实现。如果您在使用中出现问题请联系以下email:[email protected],谢谢。
下载地址和相关信息请参阅:
http://www.sim-crea.com/pages/project.html
现在正在着手准备.net平台上的登陆器开发,使只更为方便易用,并会为似水流年的注册用户提供特别版本。
[此贴子已经被作者于2005-3-9 9:20:20编辑过]
|