六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

找出計算機上當前登錄入網的用戶

[摘要]有的程序員希望能夠顯示用戶當前登錄的用戶名。這使得程序員可以識別當前企圖執行某個操作的用戶,也可以通知用戶機器已被某個用戶以外的用戶名登錄。如何使用 Windows 9x 的網絡函數來完成此功能呢?...
有的程序員希望能夠顯示用戶當前登錄的用戶名。這使得程序員可以識別當前企圖執行某個操作的用戶,也可以通知用戶機器已被某個用戶以外的用戶名登錄。如何使用 Windows 9x 的網絡函數來完成此功能呢?


  利用 Windows API 函數 WNetGetUser 可以確定當前登錄的用戶。在 WIN32 系統中(Windows 9x 和 Windows NT),此函數接受本地驅動器名,返回用戶名及其大小(用戶名緩沖區的大小)。


  按照下列步驟實現一個例子程序。運行此例子程序,從菜單 NetWorks 中選擇菜單項 User Names, 將彈出一個對話框,顯示此機器上安裝的驅動器。當從列表中選擇一個驅動器后,文本域將改變為與此驅動 器相連接的用戶名或字符串“None”。


  實現例子程序的具體步驟如下:


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


  2.進入 AppStudio 并創建新的對話框,在對話框中,添加標題分別為 Drive Ltter: 和 Network Name: 以及 User Name: 的三個文本域。添加一個組合框,風格設置為 Drop Down List。添加兩個靜態 文本域,標識符分別為: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,函數命名為 OnNetworkUsers,點擊按鈕 Edit Code,在 CMainFrame 的方法 OnNetworkUsers 中輸入下列代碼:


void CMainFrame::OnNetworkUsers()

{

 CNetworkUserDlg dlg;


 dlg.DoModal();

}



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


   #include "NetworkUserDlg.h"


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


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



主站蜘蛛池模板: 日本系列 1页 亚洲系列 | 日韩国产欧美成人一区二区影院 | 四虎在线播放免费永久视频 | 欧美特黄一免在线观看 | 亚洲网站免费观看 | 亚洲永久精品网站 | 色噜噜狠狠色综合欧洲 | 五月天欧美激情午夜情 | 人人揉揉揉人人捏人人看 | 青青草原亚洲 | 日本香蕉一区二区在线观看 | 日韩欧美一区二区在线观看 | 亚洲欧美日韩国产 | 日韩三级欧美 | 亚洲色中色 | 日韩特黄毛片 | 亚洲图片另类 | 色婷婷六月丁香在线观看 | 亚洲九色 | 午夜激情视频在线观看 | 亚洲第一页中文字幕 | 日本一区二区三区国产 | 伊人婷婷在线 | 亚洲我不卡 | 天堂中文资源在线地址 | 日本亚欧乱色视频在线系列 | 亚洲视频在线观看免费 | 日本不卡一区二区三区视频 | 思思久久99热免费精品6 | 亚洲va久久久噜噜噜久久天堂 | 日本最新免费二区三区 | 午夜欧美福利 | 欧美在线视频观看 | 日本人成免费大片 | 日韩成人免费视频播放 | 欧美在线观看高清一二三区 | 日本视频免费在线观看 | 亚洲一区综合在线播放 | 亚洲免费观看视频 | 欧美视频中文字幕 | 亚洲欧洲精品视频 |