设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>理工论文 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
找出计算机上当前登录入网的用户
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  


    有的程序员希望能够显示用户当前登录的用户名。这使得程序员可以识别当前企图执行某个操作的用户,也可以通知用户机器已被某个用户以外的用户名登录。如何使用 Windows 9x 的网络函数来完成此功能呢
  利用 Windows API 函数 WNetGetUser 可以确定当前登录的用户。在 WIN32 系统中(Windows 9x 和 Windows NT),此函数接受本地驱动器名,返回用户名及其大小(用户名缓冲区的大小)。http://www.16sheji8.cn/

  按照下列步骤实现一个例子程序。运行此例子程序,从菜单 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();http://www.16sheji8.cn/
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();http://www.16sheji8.cn/

 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"http://www.16sheji8.cn/

  11.编译并运行此例子程序。

  以上例子程序中的大部分代码是相当直接的。首先检查驱动器是否有效,如果是,将驱动器添加到组合框中。当用户从组合框中选择驱动器后,程序接着向网络软件查询此驱动器逻辑连接的网络名。最后,由于在同一台工作站上可以用多个用户名登录多个网络,所以向网络软件查询的是与驱动器相连接的用户名。

http://www.16sheji8.cn/

 

  全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
本类最新文章
卡车自动排队紧急躲避和制动研究 可持续夹具及固定装置的高精度安装 低碳钢药芯焊丝气保护焊接参数对焊
一种关于粗糙集改进注射模具浇道的 基于.NET的网上购物系统的开发 温度控制和PID控制器简介
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!