一款上網撥號程序的設計-----vc+篇

    如今的時代是網絡的時代,網絡應用程序的應用愈來愈普遍,在本身設計的應用程序中實現直接撥號上網,給應用程序的使用者帶了不少方便與驚喜。 api

    環境:window7 操做系統 網絡

    vc+6.0開發 less

  

首先建立一個以對話框爲主的VC++工程,如下是本應用程序用的對話框 函數

  而後在對話框這個類的頭文件中加入幾個新定義函數: public: spa

  void SetupDialupCombo(void); 操作系統

  protected: 設計

  //{{AFX_MSG(CDialprocDlg) 事件

  virtual BOOL OnInitDialog(); 開發

  afx_msg void OnConnectbutton(); it

  //響應對話框中BUTTON按鈕「接續」的事件

  afx_msg void OnSelchangeDialupCombo();

  //響應對話中COMBO控件選擇改變的事件

  //}}AFX_MSG

  如下是在對話框這個類的源文件中加入新定義函數的功能:別忘了在頭文件中加入#include < ras.h >這個頭文件,以及在Settings中的Link中的LibraryModules加入rasapi32.lib. void CDialprocDlg::SetupDialupCombo()

  {

  m_DialCombo.ResetContent();

  //m_DialCombo是對話框中Combox控件的命名

  DWORD n;

  DWORD dwSize=0;

  //枚舉出本地電腦中的全部撥號鏈接。

  DWORD ret=RasEnumEntries

  (NULL, NULL, NULL, &dwSize,&n);

  n=dwSize/sizeof(RASENTRYNAME);

  RASENTRYNAME *entry=new RASENTRYNAME[n];

  if (entry) {

  entry[0].dwSize=sizeof(RASENTRYNAME);

  DWORD ret=RasEnumEntries

  (NULL, NULL, entry, &dwSize,&n);

  for (DWORD i=0;i< n;i++) {

  m_DialCombo.AddString(entry[i].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(params.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,

  NULL, NULL, &handle)==0) {

  MessageBox("已聯接,若是按「肯定」就會切斷電話");

  } 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); TRACE("%s\n",params.szEntryName);

  BOOL p;

  RasGetEntryDialParams(NULL, ?ms, &p);

  m_UserId.SetWindowText(params.szUserName);

  m_PasswordEdit.SetWindowText(params.szPassword);

  } }

  BOOL CDialprocDlg::OnInitDialog()

  {CDialog::OnInitDialog();

  SetupDialupCombo();

  return TRUE; // return TRUE

  unless you set the focus to a control

  }

能夠運行程序啦

end

相關文章
相關標籤/搜索