1、技巧】用 VC+实现上网拨号功能用 VC+实现上网拨号功能作者:未知 来源:网络 日期:2006-4-2 - 现在的时代是网络的时代,网络应用程序的应用越来越广泛,在自己设计的应用程序中实现直接拨号上网,给应用程序的使用者带了很多方便,本应用程序就是在中文 windows95 操作系统上,用 VC+5.0 开发的实现拨号上网的一个小程序,希望能对大家有所帮助。下面是实现这一功能的源程序: - 首先创建一个以对话框为主的 VC+工程,以下是本应用程序用的对话框 (图略) - 然后在对话框这个类的头文件中加入几个新定义函数: public:void SetupDialupCombo(void);p
2、rotected:/AFX_MSG(CDialprocDlg)virtual BOOL OnInitDialog();afx_msg void OnConnectbutton();/响应对话框中 BUTTON 按钮“ 接续”的事件afx_msg void OnSelchangeDialupCombo();/响应对话中 COMBO 控件选择改变的事件/AFX_MSG- 以下是在对话框这个类的源文件中加入新定义函数的功能:别忘了在头文件中加入#include ras.h 这个头文件,以及在 Settings 中的 Link 中的 LibraryModules 加入 rasapi32.lib. vo
3、id CDialprocDlg:SetupDialupCombo() m_DialCombo.ResetContent();/m_DialCombo 是对话框中 Combox 控件的命名DWORD n;DWORD dwSize=0;/枚举出本地电脑中的所有拨号连接。DWORD ret=RasEnumEntries(NULL, NULL, NULL, n=dwSize/sizeof(RASENTRYNAME);RASENTRYNAME *entry=new RASENTRYNAMEn;if (entry) entry0.dwSize=sizeof(RASENTRYNAME);DWORD ret=
4、RasEnumEntries(NULL, NULL, entry, for (DWORD i=0;i n;i+) m_DialCombo.AddString(entryi.szEntryName);delete entry; void CDialprocDlg:OnConnectbutton() CWaitCursor wait;RASDIALPARAMS params;memset(?ms, 0, sizeof(params);params.dwSize=sizeof(params);m_DialCombo.GetWindowText(params.szEntryName,sizeof(pa
5、rams.szEntryName)-1);strcpy(params.szPhoneNumber,“);m_UserId.GetWindowText(params.szUserName, sizeof(params.szUserName)-1);m_PasswordEdit.GetWindowText(params.szPassword,sizeof(params.szPassword)-1);/m_UserId 和 m_PasswordEdit 是对话框中两个 Edit 控件的命名HRASCONN handle;/指定的拨号连接。if (RasDial(NULL, NULL, ?ms, NU
6、LL, NULL, else MessageBox(“正在拨打的计算机没有应答,稍后请再试“);wait.Restore();RasHangUp(handle);void CDialprocDlg:OnSelchangeDialupCombo() RASDIALPARAMS params;memset(?ms, 0,sizeof(params);params.dwSize=sizeof(RASDIALPARAMS);int sel=m_DialCombo.GetCurSel();if (sel =0) m_DialCombo.GetLBText(sel, params.szEntryName)
7、; TRACE(“%sn“,params.szEntryName);BOOL p;RasGetEntryDialParams(NULL, ?ms, m_UserId.SetWindowText(params.szUserName);m_PasswordEdit.SetWindowText(params.szPassword); BOOL CDialprocDlg:OnInitDialog()CDialog:OnInitDialog();SetupDialupCombo();return TRUE; / return TRUEunless you set the focus to a control- 这个应用程序在中文 95 操作系统下,在 VC+5.0 上开发、编译、运行通过的。