windows系统辅助管理程序设计与开发—免费计算机毕业设计论文内容摘要:
ress()函数,在 text 文本框中分别显示出当前主机名和 IP地址。 获取物理地址 功能设计 这个窗体主要用来获取 MAC 地址,本模块使用 NetBIOS 网络编程 接口来获取网卡的物理地址。 NetBIOS API 只有一个函数 NetBIOS, 该函数解释和执行指定的网络控制块( NCB),函数的原型如下: UCHAR NetBIOS (PNCB pncb); pncb:指向 NCB 结构的指针,该结构描述了网络控制块。 在网络控制块结构中,包含了一个执行 NetBIOS 命令、相应的 NetBIOS 函数需要用到的全部信息。 NCB 结构的定义如下: private type NET_CONTROL_BLOCK ncb_mand as byte ncb_retcode as byte „„ ncb_event as long End type 进行任何 NetBIOS 调用之前,必须先将这个结构清零。 第 9 页 共 26 页 NetBIOS 提供了几个专门负责收集网络参数的命令,其中包括名字查找命令( NCBFINDNAME)和适配器状态命令 (NCBASTAT)。 这里主要讲述适配器状态命令,利用适配器状态命令,可取得与本地计算机及其 LANA 编号的有关信息。 适配器状态命令返回一个 ADAPTER_STATUS 结构和紧接其后的大量 NAME_BUFFER 结构。 ADAPTER_STATUS 结构定义如下: Private type ADAPTER_STATUS adapter_address(5) as byte rev_major as byte „„ Name_count as integer End type 在 ADAPTER_STATUS 结构中,最重要的成员是 adapter_address 成员,它表示的是网卡的 MAC 地址。 使用函数 GetMACAddress()实现物理地址的获取: Private Function GetMACAddress() As String „„ pASTAT = HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS Or HEAP_ZERO_MEMORY, ) „„ = pASTAT Call Netbios(NCB) CopyMemory AST, , Len(AST) tmp = Format$(Hex((0)), 00) amp。 amp。 Format$(Hex((1)), 00) amp。 amp。 „„ Format$(Hex((5)), 00) „„ End Function 函数 GetMACAddress()为自定义函数,它通过调用 NetBIOS 函数来获取网卡的 MAC地址。 GetMACAddress()函数两次调用了 NetBIOS函数:第一次调用 NetBIOS函数采用的是 NCBRESET 命令,目的是重置所有的 LANA 编号;第二次调用采用的是适配器状态命令 NCBASTAT,通过它可以取得与本地计算机指定 LANA 编号有关的结构信息,从这个结构信息中,可以解析出网卡的物理地址。 第 10 页 共 26 页 界面实现 添加一个窗体,并按照下表设置窗体的属性 表 获取物理地址窗体设置表 窗体属性 取值 Name MACaddress Caption 获取物理地址 该窗体上添加 1个 label 控件, Caption 属性设置为‘ MAC 地址’, 1个 text控件, text 属性设置为空, 1个 mandbotton 控件, Caption 属性设置为‘运行’。 添加完毕后的窗体如图所示: 图 获取物理地址界面 点击按钮,程序调用 GetMACAddress()函数,在 text 控件中显示主机物理地址。 显示本机用户信息 功能设计 这个窗体主要用来显示系统中所有用户及其相关信息。 使用 API 函数GetComputerName 获取服务器名,使用 API 函数 NetUserEnum 返回 PDC/BDC 用户管理器( User Manager)中定义的所有用户,显示在 ListBox 控件中,调用 API函数 NetUserGetInfo 函数,并使用其中的 USER_INFO_10 结构返回当前服务器上指定用户的信息,包括用户名、用户全名、描述和用户描述信息,显示在对应的文本框里。 其主要的函数和结构如下: ( 1) NetUserEnum 函数 NET_API_STATUS NetUserEnum( LPWSTR servername, DWORD level, „„ LPDWORD entriesread, 第 11 页 共 26 页 LPDWORD totalentries, LPDWORD resume_handle ); servername:一个指向 Unicode 字符串的指针,该字符串给出了执行该函数的远程服务器名,空指针或空字符串指明以本地机作为服务器。 level:定义返回信息的级别,本设计只返回枚举的用户名,使用 0 值,即返回 USER_INFO_0 的信息。 Entriesread:指向一个 DWORD 变量的指针。 该变量中包含了实际枚举的元素的数量。 resume_handle: 指 向 一 个 DWORD 变 量 的 指 针。 给 出 了 重 用 句 柄( resume_handle) ,它用于继续查找存在的用户。 如果函数调用成功,则返回 NERR_SUCCESS;否则,返回错误代码。 该函数不会返回 windows 所有的系统用户,它只能返回由函数 NetUserAdd 添加的用户。 ( 2) NetUserGetInfo 函数 NET_API_STATUS NetUserGetInfo( LPWSTR servername, LPWSTR username, DWORD level, LPBYTE * bufptr ); servername:一个指向 Unicode 字符串的指针,该字符串给出了执行该函数的远程服务器名,空指针或空字符串指明以本地机作为服务器。 username: 一个指向 Unicode 字符串的指针,该字符串给出了将返回信息的用户名称。 level:定义返回信息的级别,本设计只返回枚举的用户名,使用 10值,即返回 USER_INFO_10 结构的信息。 如果函数调用成功,则返回 NERR_SUCCESS;否则,返回错误代码。 ( 3) USER_INFO_10 结构 Private type USER_INFO_10 Usr10_name as long Usr10_ment as long Usr10_usr_ment as long Usr10_full_name as long End type 第 12 页 共 26 页 窗体中使用定义了 USER_INFO 结构存放实际显示的字符串。 窗体中使用自定义函数 GetUserEnumInfo()枚举本机用户: Private Function GetUserEnumInfo(bServername() As Byte) „„ CopyMemory users(0), ByVal buff, entriesread * 4 For t = 0 To entriesread 1 GetPointerToByteStringW(users(t)) Next t „„ End Function 以服务器名和当前选中用户名为参数,调用函数,返回 USER_INFO_10 结构中的用户信息。 GetPointerToByteStringW()函数获取指针所指的字符串信息。 窗体使用自定义函数 GetUserNetworkInfo()实现获取各个用户详细信息: Private Function GetUserNetworkInfo(bServername() As Byte, bUsername() As Byte) As USER_INFO „„ CopyMemory usrapi, ByVal buff, Len(usrapi) = GetPointerToByteStringW() = GetPointerToByteStringW() = GetPointerToByteStringW() = GetPointerToByteStringW()‘ GetPointerToByteStringW()为自定义函数,用于获取指针中的字符串 „„ End Function 界面实现 添加一个窗体,并按照下表设置窗体的属性 表 显示用户窗体设置表 窗体属性 取值 Name userinformation Caption 用户信息 第 13 页 共 26 页 该窗体首先添加一个 ListBox 控件,然后再添加 5 个 label 控件, Caption分别设置属性为服务器名、用户名、用户全名、描述、用户描述,添加 5个 text控件分别对应 5 个 Label 控件, text 属性均设为空,添加完毕后的窗体如图所示: 图 显示用户信息 当用 户单击工程主窗体上的‘用户信息’按钮,调用 GetUserEnumInfo()和rgbGetCompterName()函数,获取本机用户名和服务器名分别显示在 ListBox 和text1 控件中,用户单击列表框中的任一用户,调用 GetUserNetworkInfo()函数,获取 USER_INFO_10 结构中的用户信息,显示在下面对应的四个 text 文本框中。 显示工作站信息 功能设计 这个窗体主要用来显示工作站的配置信息和当前登陆的用户。 程序主要用NetWkstaGetInfo 函数使用的结构 WKSTA_INFO_102 带回工作站的环境信息,包括平台信息、域名(或工作组)、计算机名、登陆到计算机的用户数目以及操作系统的信息。 使用 NetWkstaUserEnum 函数使用的结构 WKSTA_USER_INFO_0,该结构仅有一个成员,带回当前登陆到工作站的用户名。 主要函数及结构定义如下: ( 1) NetWkstaGetInfo 函数 函数返回工作站的配置信息。 NET_API_STATUS NetWkstaGetInfo( LPWSTR servername, DWORD level, LPBYTE * bufptr 第 14 页 共 26 页 ); servername:远程服务器名字的 Unicode 字符串地址。 level:指定返回的信息的级别。 本程序使用 WKSTA_INFO_102 结构。 bufptr:一个缓存的指针,存放由参数 level 指定的数据。 函数调用成功,则返回 NERR_SUCCESS,否则,返回错误信息。 ( 2) WKSTA_INFO_102 结构 该结构包含了工作站环境信息,包括工作平台、域名、本机名称以及与操作系统有关的信息。 结构定义如下: Typedef struct_WKSTA_INFO_102( DWORD wki102_platform_id; ‘信息级别,用于返回平台信息 LPWSTR wki102_putername; ‘一个 Unicode 字符串指针,是本地计算机名 LPWSTR wki102_langroup; ‘一个 Unicode 字符串指针,包含了计算机所属域名称 DWORD wki102_ver_major; ‘操作系统的主版本号 DWORD wki102_ver_minor; ‘操作系统的次版本号 LPWSTR wki102_lanroot; DWORD wki102_logged_on_users;‘登陆到本地计算机上的用户数 )WKSTA_INFO_102, *PWKSTA_INFO_102, *LPWKSTA_INFO_102; ( 3) NetWkstaUserEnum 函数 该函数枚举当前登陆到工作站的所有用户信息,只有本地组的管理员可以在本机或远程机上成功执行该函数。 函数原型: NET_API_STATUS NetWkstaUserEnum( LPW。windows系统辅助管理程序设计与开发—免费计算机毕业设计论文
相关推荐
=.f. endif =l l=l+10 (4): locate all for 用户名 =rtri() .and. 口令 =rtri() if found() use in 口令表 release thisform do 大菜单 .mpr else i=i+1 if i=3 messagebox(你不是系统管理员 !!!,对不起 :) USE IN 口令表 CLEAR EVENTS
数,可采用 ~,现取 1 ; q — 过闸单宽流量, Qv =30/8= m3/ s。 得出跃后水深 ch 出池河床水深 hs,故需要建消力池。 经计算,在不能忽略 ov 时用公式 2222 scqqggZ hh 和 socdZhh 现拟设挖深毕业设计 10 式消力池,池深 d=。 三、消力池池长 消力池池长根据:sj s JL L L
——全面优化城乡发展环境。 贯彻落实全国城市工作会议精神,全力做好城市工作。 完善城市功能,完成 “三横两纵 ”等快速交通网络建设,着力打 造都市气派、秩序井然、生态文明的市容环境最优区。 加快推进国家低碳工业园区试点工作,推进生态环境综合整治, 18 加快浑河西峡谷、细河 U 谷、宝马公园等生态景观工程建设。 严格环保执法,严肃查处环境违法行为。 发展绿色交通,加快新能源汽车推广应用。
\n)。 printf(\n请输入你的选择: )。 scanf(%d, amp。 yourchoice)。 }//endwhile(1) }//mainwork 无向网操作主调模块设计 int changegraph(mgraph amp。 c) { int yourchoice。 printf(\n 请问是要 \n\n (1)再次建图 (2)删除结点 (3)删除边 \n)。 printf(\n
文的最终研究成果。 ②研究框架 相关概念与研究现状 ①相关概念与界定 动漫产业是我国各城市发展创意产业的突破口。 据专家介绍,动漫产业被称为 21世纪知识经济的核心产业,是继 IT 产业后又一个经济增长点。 统计显示, 2020 年全球游戏、动画业相关衍生产品产值在 5000 亿美元以上。 在日本,动漫艺术及相关产业规模仅次于旅游业,已经成为六大支柱产业之一。 我国动漫产业有着每年总计 200
是很多的,针对浙江省的海岛旅游研究也较多,但研究范围一般都较大,地域研究范围针对某个海岛旅游的研究很少,而对旅游业刚刚起步不久的东极岛的研究更是极少。 东极岛是 舟山群岛东端岛屿,同时也是中国海洋最东端的边境岛屿。 它 是 长三角 地区已知海洋海岛旅游资源中,个性和特色 尤为 鲜明 、 至今尚没有 真正 开发 、 海洋生态环境 较为 优美的地区, 所以通过科学的规划,合理的 开发和严格的管理