找出计算机上当前登录入网的用户

有的程序员希望能够显示用户当前登录的用户名。这使得程序员可以识别当前企图执行某个操作的用户,也可以通知用户机器已被某个用户以外的用户名登录。如何使用 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
}

时间: 2024-10-09 07:53:28

找出计算机上当前登录入网的用户的相关文章

在未加入域的客户端计算机上自动登录SharePoint Companyweb

公司的服务器是一台 Windows Small Business Server 2011 Standard,基 础业务平台基于 SharePoint 构建,其实就是一个简单的表库.内部加入到域的 客户端在访问 SharePoint Companyweb 站点时都能自动登录,唯独 gOxiA 的笔 记本电脑每次登录时都需要键入账号和密码,感觉非常麻烦,但又不想加入到域 中!那么有什么好的办法能够解决呢?! 计算机上自动登录SharePoint Companyweb-sharepoint 客户端"&

如何在一台计算机上同时登录多个MSN账户

有没有办法同时登录多个 MSN 账户?例如,一个账户专供工作用,一个亲人朋友联系用. 方法一:Fixit 自动修复. 单击"解决此问题"链接,在文件下载对话框中单击"运行",然后按照向导操作即可. 方法二:自己动手修复. 从开始菜单中单击"运行"(或者直接按快捷键组合"Win+R"),键入命令 regedit.exe,回车.打开注册表编辑器. (若弹出用户账户控制窗口,请允许以继续) 若使用32位的操作系统,请定位到键值:HK

《Splunk智能运维实战》——2.4 找出最常使用的Web浏览器

2.4 找出最常使用的Web浏览器 用户会使用各种设备和浏览器访问网站.分析Web访问日志可了解哪些浏览器是最常使用的,网站必须要支持这些浏览器.也可利用这一信息来识别用户使用的设备种类. 本节将通过编写一个搜索语句,来找到给定时间内最常使用的浏览器.eval和replace命令将同时使用,以便让数据更易读. 做好准备 本节操作需运行Splunk Enterprise服务器,导入和第1章相同的样本数据.我们已经很熟悉Splunk的搜索栏和它右侧的时间选择器了. 如何操作 按照下列步骤搜索最常使用

XP提示“未授予用户在此计算机上的请求登录类型”的解决方案

XP提示"未授予用户在此计算机上的请求登录类型"的解决方案   具体如下: 1.打开"控制面板"中的"管理工具"; 2.在"管理工具"中选择"本地安全策略"; 3.选择"本地安全策略"--"本地策略"--"用户权利指派"; 4.在"用户权利指派"右边的选项框中,我们双击"拒绝从网络访问这台计算机"; 5.将&

未授予用户在此计算机上的请求登录类型的解决方法

如果一台单独的XP要远程登录的话,得在本地安全设置里,将"拒绝从网络访问这台计算机"中将GUEST帐号去掉即可. 一.症结 1.访问权限设置不当 Windows NT/2000/XP/2003系统支持NTFS文件系统,采用NTFS可以有效增强系统的安全性,但在ACL(访问控制列表)中对用户访问权限设置不当时,也会导致用户无法正常访问本机共享资源,出现 "权限不足"的提示信息. 2.账号和策略设置不当 在Windows工作组环境中,一般情况下,用户要使用 Guest账

activex-在网上找的demo,提示未在此计算机上注册ActiveX控件,应该怎么办

问题描述 在网上找的demo,提示未在此计算机上注册ActiveX控件,应该怎么办 在网上找的VS2010工程提示是这样,应该怎么解决呢,如何下载ActiveX控件,因为根据需求会用到不同的控件 解决方案 查看你那demo项目里有没有.ocx后缀的文件,然后注册就行了 管理员模式进行cmd控制台 regsvr32 < 文件名 > 注册一个ActiveX控件 regsvr32 /u < 文件名 > 解除某ActiveX控件的注册

c-我刚刚入门,写一个一元多项式的简单计算,求帮忙解决这个加减问题,代码如下,帮忙找出错误,急急急

问题描述 我刚刚入门,写一个一元多项式的简单计算,求帮忙解决这个加减问题,代码如下,帮忙找出错误,急急急 #include #include typedef struct node { float c; int e; struct node * next; }lnode,*plnode; void insert_menu(); void insert_pol(plnode &l); void output_pol(plnode &l); void add_pol(plnode list1,

怎么判断2个相同登录的账号,在不同计算机上登录,让另一个下线的功能。

问题描述 怎么判断2个相同登录的账号,在不同计算机上登录,让另一个下线的功能. 解决方案 解决方案二:IP+用户名+在线状态解决方案三:你了解单点登录的知识就懂了解决方案四:直接用get就行了吧解决方案五:1.给每次登陆的用户随机生成一个唯一的登陆ID,并记录下它的登陆IP:2.如果第二次登陆IP,不同于上一次,把上一次的登陆ID设置为失效:3.用户每次访问,先验证其登陆ID是否有效,如果无效,就让它下线,删掉它的session.解决方案六:请研究单点登录解决方案七:只能在一个地点登录,这跟SS

at计划在指定时间和日期在计算机上运行命令和程序_DOS/BAT

at计划在指定时间和日期在计算机上运行命令和程序.at 命令只能在"计划"服务运行时使用.如果在没有参数的情况下使用,则 at 列出已计划的命令. 语法 at [\\ComputerName] [{[ID] [/delete]|/delete [/yes]}] at [[\\ComputerName] hours:minutes [/interactive] [{/every:date[,...]|/next:date[,...]}] command] 参数 \\computernam