FreeChinaNet登陆器
1.其实就用到了Windows里的一个RasDial拨号函数,代替宽带连接实现拨号,具体使用方法请查看MSDN。
2.这只是一个登陆器哦,账号文件和程序放在同一个目录,名字是accounts.dat,免费账号还要在网上找,账号保存格式可以查看该文件。
3.使用前必须连上ChinaNet,否则需等待程序超时自动退出,不然拨号连接会一直挂起。
4.看懂了源代码,稍加修改就可以做一个扫号器,有空再搞吧。
贴上部分代码,完整的VC6.0工程在下面。
1 #include <windows.h> 2 #include <stdio.h> 3 #include <conio.h> 4 5 #include "menu.h" 6 #include "fileapp.h" 7 #include "rasapp.h" 8 9 int main() 10 { 11 UINT Ttask = 0; 12 UINT Tstate = 0; 13 14 SetConsoleTitle("FreeChinaNet@HDU"); 15 Ttask = MenuPlay(); 16 if(Ttask == 3) 17 { 18 return 0; 19 } 20 /*--------------------------------------------------*/ 21 printf("\n"); 22 if(OpenFileData() == 0) 23 { 24 printf("MSG-已打开账号文件\n"); 25 } 26 else 27 { 28 printf("Error-打不开账号文件,请检查!\n"); 29 printf("\n"); 30 printf("按任意键退出."); 31 getch(); 32 return 0; 33 } 34 35 while(Tstate == 0) 36 { 37 printf("MSG-正在尝试第%d个账号\n", Tcnt+1); 38 if(CopyFileData() != 0) // 拷贝一组新的账户密码 39 { 40 printf("MSG-没有可用的账号,要更新了\n"); 41 fclose(Mfile); 42 break; 43 } 44 RasCreateLink(); // 建立连接 45 while(Merror == 0) 46 { 47 if(Mstate == 8192) // 连接成功 48 { 49 Tstate = 1; 50 printf("MSG-登陆成功!开始冲浪啦!^_^\n"); 51 RefreshTime(); 52 break; // 跳出循环 53 } 54 } 55 if(Tstate == 0) // 未连接 56 { 57 if(Merror == 651) 58 { 59 printf("登陆失败,请确认ChinaNet已连接!\n"); 60 RasHangUpA(hRscon); 61 fclose(Mfile); 62 break; // 跳出大循环 63 } 64 // 此处为账号错误,清零Error,挂断上次连接,继续循环 65 Merror = 0; 66 RasHangUpA(hRscon); 67 Tcnt ++; 68 } 69 Sleep(1000); // 延时1s 70 } 71 72 printf("\n"); 73 printf("按任意键退出."); 74 getch(); // 按任意键退出 75 return 0; // 返回0 76 }