91精品人妻互换日韩精品久久影视|又粗又大的网站激情文学制服91|亚州A∨无码片中文字慕鲁丝片区|jizz中国无码91麻豆精品福利|午夜成人AA婷婷五月天精品|素人AV在线国产高清不卡片|尤物精品视频影院91日韩|亚洲精品18国产精品闷骚

您當前位置:首頁 > 新聞頻道 > 技術動態(tài) > 正文
計算機上當前登錄入網(wǎng)的用戶研析
有的程序員希望能夠顯示用戶當前登錄的用戶名。這使得程序員可以識別當前企圖執(zhí)行某個操作的用戶,也可以通知用戶機器已被某個用戶以外的用戶名登錄。如何使用 Windows 9x 的網(wǎng)絡函數(shù)來完成此功能呢?

  利用 Windows API 函數(shù) WNetGetUser 可以確定當前登錄的用戶。在 WIN32 系統(tǒng)中(Windows 9x 和 Windows NT),此函數(shù)接受本地驅(qū)動器名,返回用戶名及其大。ㄓ脩裘彌_區(qū)的大。。

  按照下列步驟實現(xiàn)一個例子程序。運行此例子程序,從菜單 NetWorks 中選擇菜單項 User Names, 將彈出一個對話框,顯示此機器上安裝的驅(qū)動器。當從列表中選擇一個驅(qū)動器后,文本域?qū)⒏淖優(yōu)榕c此驅(qū)動 器相連接的用戶名或字符串“None”。

  實現(xiàn)例子程序的具體步驟如下:

  1.在 Visual C++ 中,利用 AppWizard 創(chuàng)建新的項目文件,并命名此項目文件為 LD17.MAK.

  2.進入 AppStudio 并創(chuàng)建新的對話框,在對話框中,添加標題分別為 Drive Ltter: 和 Network Name: 以及 User Name: 的三個文本域。添加一個組合框,風格設置為 Drop Down List。添加兩個靜態(tài) 文本域,標識符分別為:ID_NET_NAME 和 ID_NET_USER。

  3.將對話框 ID 改為 ID_NETWORK_USER,并設置標題為 View Network Users,保存對話框。

  4.進入 classWizard,選擇按鈕 Add class。在名字域中鍵入名字 CNetworkUserDlg,基類 為 CDIALOG,對話框 ID 為 ID_NETWORK_USER。

  5.在 classWizard 的下拉列表中選擇 CNetworkUserDlg ,從消息列表中選擇消息 WM_INITDIALOG, 點擊按鈕 Edit Code。

  6.在 CNetworkUserDlg 的方法 OnInitDialog 中輸入下列代碼:

BOOL CNetworkUserDlg::OnInitDialog()
{
CDialog::OnInitDialog();
char buf[20];

CComboBox *combo=(CComboBox *)GetDlgItem(IDC_COMBO1);

for(int i=0;i<26;i++)
{
sprintf(buf,"%c:\",注釋:A注釋:+i);
WORD type="GetDriveType(buf);"
switch(type)
{ case DRIVE_FIXED: sprintf(buf,"%c:",注釋:A注釋:+i); combo->AddString(buf);
break;
case DRIVE_REMOTE:
sprintf(buf,"%c:",注釋:A注釋:+i);
combo->AddString(buf);
break;
case DRIVE_CDROM:
sprintf(buf,"%c:",注釋:A注釋:+i);
combo->AddString(buf);
break;
}
}
combo->SetCurSel(0);
OnDriveChange();

return TRUE; // return TRUE unless you set the focus to a control
}

  7.在 classWizard 中,從對象 ID 列表中選擇對象 IDC_COMBO1,選擇命令 CBN_SELCHANGE。 點擊按鈕 Add Function,命名方法為 OnDriveChange。點擊按鈕 Edit Code,在 CNetworkUserDlg 的方法 OnDriveChange 中輸入下列代碼:

void CNetworkUserDlg::OnDriveChange()
{
 char drive_letter[20];
 char network_name[256];
 char user_name[256];
 unsigned long size=256;

 UpdateData();

 CComboBox *combo=(CComboBox *)GetDlgItem(IDC_COMBO1);
 int sel=combo->GetCurSel();

 combo->GetLBText(sel,drive_letter);

 if(WNetGetConnection(drive_letter,network_name,&size)==0)
  GetDlgItem(ID_NET_NAME)->SetWindowText(network_name);
 else
  GetDlgItem(ID_NET_NAME)->SetWindowText("Not network drive");

  if(WNetGetUser(drive_letter,user_name,&size))
   GetDlgItem(ID_NET_USER)->SetWindowText(user_name);
  else
   GetDlgItem(ID_NET_USER)->SetWindowText("None");
}


  8.進入 AppStudio,在菜單 IDR_MAINFAME 中,添加新的菜單 Networks。在菜單 Networks 中, 添加菜單項 Get User Names,其 ID 為 ID_NETWORK_USERS。

  9.進入 classWizard,從下拉列表中選擇類 CMainFrame,從對象 ID 列表中選擇對象 ID_NETWORK_USERS,從消息列表中選擇消息 COMMAND。點擊按鈕 Add Function,函數(shù)命名為 OnNetworkUsers,點擊按鈕 Edit Code,在 CMainFrame 的方法 OnNetworkUsers 中輸入下列代碼:

void CMainFrame::OnNetworkUsers()
{
 CNetworkUserDlg dlg;

 dlg.DoModal();
}


  10.在文件 MAINFRM.CPP 的頂部添加下列行:

   #include "NetworkUserDlg.h"

  11.編譯并運行此例子程序。

  以上例子程序中的大部分代碼是相當直接的。首先檢查驅(qū)動器是否有效,如果是,將驅(qū)動器添加到組合框中。當用戶從組合框中選擇驅(qū)動器后,程序接著向網(wǎng)絡軟件查詢此驅(qū)動器邏輯連接的網(wǎng)絡名。最后,由于在同一臺工作站上可以用多個用戶名登錄多個網(wǎng)絡,所以向網(wǎng)絡軟件查詢的是與驅(qū)動器相連接的用戶名。

關鍵字:通訊
About Us - 關于我們 - 服務列表 - 付費指導 - 媒體合作 - 廣告服務 - 版權聲明 - 聯(lián)系我們 - 網(wǎng)站地圖 - 常見問題 - 友情鏈接
Copyright©2014安裝信息網(wǎng) www.78375555.com. All rights reserved.
服務熱線:4000-293-296 聯(lián)系電話:0371-61311617 傳真:0371-55611201 QQ: 郵箱:zgazxxw@126.com 豫ICP備18030500號-4
未經(jīng)過本站允許,請勿將本站內(nèi)容傳播或復制
安全聯(lián)盟認證