在VB中通过程序实现向Windows添加用户的方法
- 格式:doc
- 大小:34.00 KB
- 文档页数:8
基于VB和XML的个人资料编辑器的实现在当今信息化时代,我们每个人都需要处理各种各样的个人信息,如姓名、地址、电话号码、电子邮件、社交媒体账号等。
不同的场景,需要我们提供不同的信息,因此,需要一个方便实用的工具来管理这些信息。
本文将介绍一个基于VB和XML的个人资料编辑器。
一、为什么选择VB和XMLVisual Basic(VB)是一种面向对象的编程语言,可用于Windows平台应用程序开发。
VB可以通过可视化开发环境方便快捷地进行开发。
而且,VB的语法易于学习,适合初学者上手。
XML(Extensible Markup Language)是一种标记语言,用于存储和传输数据。
它具有结构化、可扩展和易于处理的特点。
将个人信息存储在XML文件中,方便了数据的整理和管理,可以灵活地增加、删除和修改数据记录。
二、需求分析在设计个人资料编辑器之前,需要先分析用户的需求。
通过与用户进行交流,整理出以下功能需求:1. 能够方便地添加、删除和修改个人信息;2. 支持批量导入和导出;3. 支持搜索功能,查找特定的个人信息;4. 支持多种排序方式,如按姓名、电话号码或地址等排序;5. 能够保存用户的数据到XML文件中,方便备份和恢复;6. 界面简洁、美观,方便用户操作。
三、系统设计在满足用户需求的基础上,我们开始设计个人资料编辑器。
界面采用Windows标准界面,主要分为菜单栏、工具栏、信息列表和状态栏四大部分。
1. 菜单栏包括文件、编辑、视图、帮助四个菜单,分别用于打开、保存、导入、导出、添加、删除、修改、排序、搜索、查看帮助等功能。
2. 工具栏包括常用的添加、删除、修改、保存、导入、导出按钮,方便用户快速访问常用功能。
3. 信息列表采用表格形式展示个人信息,每行对应一条记录,列分别是姓名、地址、电话号码、电子邮件、社交媒体账号等。
4. 状态栏用于显示当前操作的状态,如“打开文件”、“保存成功”、“搜索结果为XX条记录”等。
vb操作(cāozuò)word详解vb操作(cāozuò)word详解vb操作(cāozuò)word详解Visual Basic支持一个对象集合,该集合中的对象直接对应于Microsoft Word 97中的元素,并且通过用户界面,用户熟悉这些元素中的绝大多数。
例如,Document 对象代表了一个打开的文档,Bookmark对象代表了一个文档中的书签,而Selection对象则代表了在一个文档窗口窗格(chuānɡ ɡé)中的选定内容。
在Word中,每一类元素-文档、表格、段落、书签、域等等-都可以用Visual Basic的对象来表示。
要在Word中自动执行任务,可以使用这些对象的方法和属性。
关于理解和使用Microsoft Office 97对象模型的一般性内容,请参阅本书的第二章“理解对象模型”。
在Microsoft Office 97中的对象模型相当丰富(fēngfù),其中包含了大约180个对象。
要查看Word对象模型的层次关系图,请参阅“帮助”中的“Microsoft Word 对象”。
要获得对某种特定对象的详细描述,可以在此图中单击该对象的名字,或是在“帮助”的索引中对特定对象进行搜索。
怎样(zěnyàng)显示Word Visual Basic帮助要使用Word Visual Basic帮助,必须在安装过程中选择“自定义”的安装方式,并且为Word选中“Visual Basic在线(zàixiàn)帮助”复选框。
否则,安装程序不会安装Visual Basic帮助。
如果用户已经安装好了Word,那么可以再次运行Setup程序来安装Visual Basic帮助。
要查看Word Visual Basic 帮助,可以在“Visual Basic 编辑器里的“帮助”菜单中点击“目录和索引(suǒyǐn)”一项。
Visual Basic 程序设计(6.0版)兰州理工大学计算机与通信学院第一章Visual Basic程序设计概述1.1 概述1.2 运行环境、安装和启动1.3 VB集成开发环境1.1概述一、VB简介:Visual Basic是基于Basic的可视化的程序设计语言。
Visual Basic 6.0中文版是Microsoft公司最新推出的可视化开发工具,是一种基于Windows操作系统的新型的现代程序设计语言,是一种易于学习、功能强、效率高的编程工具。
任何具有初步程序设计基础的人,都能在很短的时间内掌握好VB,并有效地编写出各种Windows程序。
VB6.0包括三个版本:学习版、专业版、企业版二、VB主要功能特点:1. 具有面向对象的可视化设计工具2. 事件驱动的编程机制3. 提供了易学易用的应用程序集成开发环境4. 结构化的程序设计语言5.支持多种数据库系统的访问6.OLE技术。
VB核心就是其对对象的链接与嵌入(OLE)的支持。
7.Active技术8.完备的help联机帮助功能三、VB6.0新功能特点1.2运行环境、安装和启动一、运行环境:二、安装:安装文件:setup.exe三、启动:方法:1、双击桌面VB快捷方式。
2、“开始”|程序|Microsoft Visual Studio 6.0| Microsoft Visual Basic 6.03、“开始”|运行|C:\program files\Microsoft Visual Studio进入VB6.0窗口1.3 VB 集成开发环境工程窗口工具箱属性窗口窗体窗口窗体布局立即窗口1.主窗口应用程序窗口,由标题栏、菜单栏和工具栏组成VB的三种工作模式(标题栏总显示当前模式)(1)设计模式:创建应用程序的大多数工作都是在设计时完成的。
在设计时,可以设计窗体、绘制控件、编写代码并使用“属性”窗口来设置或查看属性设置值。
(2)运行模式:代码正在运行的时期,用户可与应用程序交流。
vb的使用方法以VB的使用方法为标题的文章VB(Visual Basic)是一种面向对象的编程语言,它的设计初衷是为了简化应用程序的开发过程。
VB在Windows操作系统中得到了广泛的应用,它具有易学易用、功能强大等特点,因此备受开发者青睐。
本文将介绍VB的使用方法,帮助读者快速入门并掌握基本的编程技巧。
一、VB的安装和配置在开始学习VB之前,首先需要将VB编程环境安装到计算机上。
VB是微软公司开发的软件,可以从官方网站下载安装包,并按照向导进行安装。
安装完成后,还需要进行一些配置,比如设置开发环境、添加相关的库文件等。
这些配置的具体步骤可以在官方文档中找到。
二、VB的基本语法VB的语法比较简单易懂,类似于人类语言的表达方式。
下面是一些基本的语法规则:1. 变量声明和赋值在VB中,可以通过使用Dim关键字声明一个变量,并为其赋予一个初始值。
例如:Dim num As Integernum = 102. 条件语句条件语句可以通过If...Then...Else...的方式来实现。
例如:If num > 0 ThenMsgBox("这个数是正数")ElseMsgBox("这个数是负数")End If3. 循环语句循环语句可以通过For...Next或者Do...Loop的方式来实现。
例如:For i = 1 To 10MsgBox(i)NextDo While num < 10num = num + 1Loop三、VB的常用功能VB作为一种编程语言,提供了许多强大的功能和工具,可以帮助开发者实现各种复杂的应用程序。
下面介绍几个常用的功能:1. 界面设计VB提供了丰富的控件库,可以用于设计各种界面。
开发者可以通过拖拽控件、设置属性等方式,快速构建出漂亮而实用的界面。
2. 数据库操作VB可以与各种数据库进行连接,并进行数据的增删改查等操作。
通过使用ADO(ActiveX Data Objects)等技术,可以方便地对数据库进行操作。
VB小程序设计实例引言VB(Visual Basic)是一种广泛应用于Windows平台的编程语言,它具有简单易学的特点,因此非常适合初学者入门。
本文将以一个实际的VB小程序设计实例为例,介绍如何使用VB语言进行简单的程序开发。
项目背景我们的目标是创建一个简单的VB小程序,用于管理学生信息。
该程序将允许用户添加、删除和修改学生的基本信息,例如姓名、年龄和班级。
此外,用户还可以根据特定条件检索学生信息,并显示学生列表。
设计步骤1. 创建VB项目首先,打开Visual Studio并选择“创建新项目”,然后选择“Visual Basic”作为项目类型。
接下来,选择“Windows Forms应用程序”作为模板,并给项目命名。
点击“确定”按钮以创建新的VB项目。
2. 设计用户界面在VB中,用户界面是通过拖放控件来创建的。
在“工具箱”中选择所需的控件,例如按钮、文本框和标签,并将它们放置在窗体上。
使用控件的属性面板可以更改它们的外观和行为。
3. 编写代码现在,我们需要为各个控件添加相应的事件处理程序。
例如,当用户点击一个按钮时,我们需要执行特定的操作。
首先,选择要添加事件处理程序的控件,然后在属性面板中找到“事件”部分。
在相应的事件上双击以创建并打开处理程序。
4. 实现学生信息管理功能在代码中,我们需要定义学生类和学生信息管理类。
学生类包含学生的属性,例如姓名、年龄和班级。
学生信息管理类包含对学生信息进行增删改查的方法。
我们可以使用集合类来存储学生对象,并使用LINQ进行查询操作。
在事件处理程序中调用适当的方法以实现相应的功能。
5. 运行和测试程序在完成代码的编写之后,我们可以点击“运行”按钮来启动程序。
通过与程序交互,测试各个功能是否按预期工作。
如果发现问题,可以调试程序并对代码进行调整。
6. 部署和发布程序一旦我们满意了程序的功能和性能,我们可以将程序部署和发布给其他人使用。
在Visual Studio中,选择“生成”菜单并点击“发布”选项。
vb通用对话框名词解释概述说明以及解释1. 引言1.1 概述在软件开发中,对话框是一种常见的用户界面元素,用于与用户进行交互和获取输入。
VB通用对话框是一种基于Visual Basic编程语言的对话框类型,具有广泛的应用领域和重要性。
本文将详细介绍VB通用对话框的概念、重要性、应用场景以及常见名词解释和功能解析。
此外,还将提供实际操作指南与技巧,并展望VB通用对话框未来可能的发展趋势。
1.2 vb通用对话框概念说明VB通用对话框是使用Visual Basic编程语言开发的一种标准化对话框。
它为开发人员提供了一套预定义的、可直接调用和使用的界面组件,以便更快速地构建用户友好的应用程序界面。
通过使用VB通用对话框,开发人员可以轻松地创建窗体、按钮、文本框等基本控件,并实现与用户的交互。
它提供了丰富的功能库和方法,使得开发过程更加高效和便捷。
1.3 目的本文旨在帮助读者全面了解VB通用对话框在软件开发中的重要性和作用。
通过介绍其应用场景以及常见名词解释和功能解析,读者可以更好地理解如何使用VB通用对话框构建用户友好的界面和实现与用户的交互。
此外,本文还提供了实际操作指南与技巧,帮助读者掌握基本的VB通用对话框的创建和使用方法。
最后,本文还展望了VB通用对话框未来可能的发展趋势,旨在激发读者对该领域的兴趣并为其未来的研究或应用提供参考。
2. VB通用对话框的重要性和应用场景2.1 为什么需要VB通用对话框:VB通用对话框是一个在软件开发中非常重要的工具,它可以提供给用户一个交互界面,通过该界面用户可以进行各种操作和输入。
VB通用对话框的存在使得软件开发更加高效和便捷,因此它成为了不可或缺的一部分。
2.2 VB通用对话框在软件开发中的作用:VB通用对话框可以帮助程序员创建各种功能丰富的用户界面。
它提供了一系列常见控件,如按钮、文本框、复选框等,以及与这些控件交互的方法和属性。
使用VB通用对话框,开发者可以快速创建一个简单易用、美观大方的用户界面,并将其与应用程序逻辑进行连接。
VB实现自我注册控件VB语言是一种面向对象的编程语言,可用于开发图形用户界面(GUI)应用程序。
在VB中,可以通过编写自定义控件来增强应用程序的功能。
本文将介绍如何使用VB实现自我注册控件。
1.创建自定义控件:首先,需要创建一个新的VB项目,并添加一个新的用户控件。
可以通过以下步骤完成:-在"解决方案资源管理器"窗口中,右键单击项目名称,选择"添加"->"新建项"。
-在弹出的对话框中选择"用户控件",并指定一个名称,然后点击"添加"按钮。
-在设计视图中,可以向控件添加所需的控件和代码,以满足应用程序的需求。
2.实现自我注册功能:自我注册是指在用户控件中编写代码来自动将控件注册到工具箱中,以便在其他项目中重复使用。
可以通过以下步骤实现自我注册功能:- 使用`ToolboxItem(true)`属性标记自定义控件类,使之能够在工具箱中显示。
- 编写一个自定义的设计器类,并使用`Designer`属性将其与自定义控件类关联。
-在用户控件的代码视图中,增加以下代码:```vb<ToolboxItem(True)><Designer(GetType(CustomControlDesigner))>Public Class CustomControl'控件的代码和属性'控件的构造函数和事件处理方法End ClassPublic Class CustomControlDesignerInherits System.Windows.Forms.Design.ControlDesignerDim svc As ITypeResolutionService =CType(Me.GetService(GetType(ITypeResolutionService)), ITypeResolutionService)svc.ReferenceAssembly(System.Reflection.Assembly.GetExecutin gAssembly(.Location)Dim typeName As String = Me.GetType(.Namespace & "." & Me.GetType(.Name.Substring(0, Me.GetType(.Name.Length - "Designer".Length)Dim type As Type = svc.GetType(typeName)If (type IsNot Nothing) ThenDim host As IDesignerHost =CType(Me.GetService(GetType(IDesignerHost)), IDesignerHost) Dim tp As ToolboxItem = New ToolboxItem(type.FullName)Dim tlh As System.Drawing.Design.ToolboxItemCreatorCallback = New System.Drawing.Design.ToolboxItemCreatorCallback(AddressOf CreateInstance)type.Assembly.GetCustomAttributes(GetType(ToolboxItemAttribu te), False)HosttoolboxService.AddCreator(tlh, tp)End IfEnd SubPrivate Function CreateInstance(ByVal serializedObject As icContainer, ByVal reportedError As String) As Object Return cf.CreateInstance(serializedObject, reportedError)End FunctionEnd Class```通过以上步骤,自定义控件将被自动注册到工具箱中,并可以在其他VB项目中使用。
第一章Visual-Basic-6.0概述VBasic 6.0基础教程第一章Visual Basic 6.0的特点Visual Basic是Microsoft公司推出的一个集成开发环境,具有简单易学、功能强大、软件费用支出低、见效快等特点。
Visual Basic继承了Basic语言易学易用的特点,特别适合初学者学习Windows系统编程。
Visual Basic之所以受到广大编程爱好者以及专业程序员的青睐,是因为它具有以下一些特点:1.可视化的集成开发环境"Visual"指的是开发图形用户界面(GUI)的方法。
在使用过去的一些语言如C语言、Basic 语言编写程序时,最令程序员烦恼的是编写友好的用户界面。
使用Visual Basic编写应用程序,则不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象添加到屏幕上即可。
"Basic"指的是BASIC(Beanner'sAll-Purpose Symbolic Instruction Code)语言--一种在计算技术发展历史上应用得最为广泛的语言。
Visual Basic在原有BASIC语言的基础上进一步发展,至今己包含了数百条语句、函数及关键词,其中很多和Windows GUI有直接关系。
专业人员可以用Visual Basis实现其它任何Windows编程语言的功能,而初学者只要掌握几个关键词就可以建立实用的应用程序。
可见,从BASIC语言发展到Visual Basic,也就是将一们单纯的计算机语言发展成为一个集应用程序开发、测试、查错功能于一体的集成开发环境。
2.面向对象的程序设计思想面向对象的程序设计是伴随Windows图形界面的诞生而产生的一种新的程序设计思想,与传统程序设计有着较大的区别,Visual Basle就采用了面向对象的程序设计思想。
所谓"对象"就是一个可操作的实体,如窗体,以及窗体中的按钮、文木框等控件。
附录打包和发布应用程序在创建Visual Basic应用程序后,您可能希望将该程序发布给其他人。
您可以将使用Visual Basic创建的任何应用程序自由地发布给使用Microsoft Windows的任何人。
可以通过磁盘、CD、网络、或者intranet以及Internet这些途径来发布应用程序。
下面以实例57为例介绍打包和展开应用程序。
一、使用向导进行打包1.启动打包和展开向导Visual Basic的打包和展开向导使您能够轻松地为应用程序创建必需的.cab文件以及安装程序。
与其它向导一样,打包和展开向导将提示您输入相应信息,以便创建您所需要的准确配置。
要从Visual Basic中启动打包和展开向导,请按照以下步骤执行:(1)打开想要使用向导来打包或展开的工程。
注意如果您正在使用一个工程组,或已加载了多个工程,则在启动该向导之前,请确保当前的工程就是您要打包或展开的工程。
(2)如果必要,请使用“外接程序管理器”来加载打包和展开向导:从“外接程序”菜单中选择“外接程序管理器”,从该列表中选择“打包和展开向导”,然后单击“确定”,如图1所示。
图1外接程序管理器(3)从“外接程序”菜单中选择“打包和展开向导”来启动该向导,如图2所示。
打包和展开向导提供了三个选项:“打包”选项帮助您将一个工程的文件打包为一个可以展开的.cab文件,而且在某些情况下还要创建一个安装程序来安装该.cab文件。
向导确定需要打包的文件,并引导您作出所必需的选择,以便为您的工程创建一个或多个.cab文件。
“展开”选项帮助您将打好包的应用程序传送到适当的发布媒体,例如软盘、网络共享、或Web站点。
“管理脚本”选项让您可以查看和操作以前使用打包和展开向导时所保存的脚本。
每次使用该向导时,都会保存一个包含您所做的所有选择的脚本。
在以后的过程中,如果您想使用相似的设置值以及做出与原来相同的选择,就可以重新使用这些脚本。
图2打包和展开向导注意:打包和展开向导只能为Visual Basic应用程序创建安装程序和发布媒体。
从DOS转移到windows从DOS转移到wIndowsvisual basic是一个完整全面的程序设计语言,它确实能适应相当多的引用需要,但是用不了多就你就会碰到vIsual basIc不能直接支持的需要,例如:visual basic语言不包含语音支持、I/O端口访问,没有指针以及无法进行多位图操作等等。
不过这些并不是visual basic的缺陷,没有任何语言能包含满足程序员所需要的全部命令函数。
在DOS的世界里,这个问题是通过建立和扩展语言功能的函数功能来解决的,这些函数可以根据自己的需要连接到您的程序中去。
在wIndows 的世界里,事情稍微复杂一些。
对于同一件事情,在wIndwos 的操作系统中比在DOS里面要复杂,例如:即使是在屏幕上显示一样字这样简单的动作,也要用到wIndows处理、显示描述表及画笔等多个对象。
另外,他们的外部函数连接过程也是不相同的。
wIndows应用的是动态链接技术,而不是DOS中通常使用的静态链接技术。
如果您只使用visual basic的函数命令,这种复杂性您是看不见的。
但是,如果你准备使用visual basic语言之外的特性,肯定回面对这样的问题。
尤其在外挂制作方面。
不过您不必惊慌。
象任何重要的程序设计语言一样,visual basIc也是告度可扩展的。
许多第三方控件都是扩展它的功能的,而wIndows本身就是一个很大的扩展VB的功能的东东,只要你很好的利用了wIndows那么,你就可以完全制作出功能超强的外挂。
很多人说wIndows程序设计非常复杂,其实,这只是针对用C 或者用 Pascal语言编写整个程序的人来说的,作为一个visual basic的程序员,你也许已经对wIndows怎样工作有了比较好的理解,因为VB的时间就相当于WINDOWS 的消息,VB的属性常常就可以认为是WINDOWS的风格和属性了,从某中角度讲,VIsual Basic 就是wInDows的编程的外壳。
Attribute VB_Name = "ModUser"Option Explicit'------------------------------------------' 模块名称:ModUser' 功能说明:windows用户组管理'------------------------------------------Public Const OLAP_Administrators = "OLAP Administrators" 'Olap用户组Public Const UF_OLAP_USER = "UF_OLAP_USER" 'Olap用户名Private Declare Function NetUserGetInfo _Lib "Netapi32" (ByVal servername As String, _ByVal username As String, ByVal Level As Long, _Buffer As Long) As LongPrivate Declare Function NetUserAdd _Lib "Netapi32" (ByVal servername As String, _ByVal Level As Long, Buffer As Any, ParamErr As _Long) As LongDeclare Function NetLocalGroupAddMembers Lib "netapi32.dll" _ (ByVal servername As String, _ByVal GroupName As String, _ByVal Level As Long, _buf As Any, _ByVal totalentries As Long) As LongDeclare Function NetApiBufferFree Lib "netapi32.dll" _(ByVal Buffer As Long) As LongDeclare Function NetUserEnum Lib "netapi32.dll" _(ByVal servername As String, _ByVal Level As Long, _ByVal filter As Long, _bufptr As Any, _ByVal prefmaxlen As Long, _entriesread As Long, _totalentries As Long, _resume_handle As Long) As LongDeclare Function NetLocalGroupEnum Lib "netapi32.dll" _ (ByVal servername As String, _ByVal Level As Long, _bufptr As Any, _ByVal prefmaxlen As Long, _entriesread As Long, _totalentries As Long, _resumehandle As Long) As LongDeclare Function NetUserGetLocalGroups Lib "netapi32.dll" _ (ByVal servername As String, _ByVal username As String, _ByVal Level As Long, _ByVal flag As Long, _bufptr As Any, _ByVal prefmaxlen As Long, _entriesread As Long, _totalentries As Long) As LongDeclare Sub RtlMoveMemory Lib "kernel32.dll" _ (Destination As Any, _Source As Any, _ByVal Length As Long)Declare Function lstrcpy Lib "kernel32.dll" _Alias "lstrcpyW" _(lpszString1 As Any, _lpszString2 As Any) As LongDeclare Function lstrlen Lib "kernel32.dll" _Alias "lstrlenW" _(ByVal lpszString As Long) As LongType USER_INFO_0usri0_name As LongEnd TypeType LOCALGROUP_INFO_0lgrpi0_name As LongEnd TypeType LOCALGROUP_USER_INFO_0lgrui0_name As LongEnd TypeType LOCALGROUP_MEMBERS_INFO_3lgrmi3_domainandname As LongEnd TypePrivate Type UserInfo_1username As StringPassword As StringPasswordAge As LongPrivilege As LongHomeDir As StringComment As StringFlags As LongScriptPath As StringEnd TypePrivate Type lpUserInfo_10username As LongComment As LongUserComment As LongFullname As LongEnd TypePrivate Usr1 As UserInfo_1Private lpUsr10 As lpUserInfo_10Public Const User_Priv_User = &H1Public Const LG_INCLUDE_INDIRECT = &H1Public Const MAX_PREFERRED_LENGTH = -1&Public Const ERROR_MORE_DATA = 234&Public Const NERR_Success = 0'Function PointerToString(lngPointer As Long) As StringDim bytBuffer(255) As Bytelstrcpy bytBuffer(0), ByVal lngPointerPointerToString = Left(bytBuffer, lstrlen(lngPointer))End Function'-----------------------------------------------'功能:向本地组添加用户'参数:servername 服务器名' localGroupName 本地组名' username 用户名'返回:是否成功0-成功'作者:万伟星'日期:2003-06-5'----------------------------------------------Function LocalGroupAddUser(servername As String, LocalGroupName As String, username As String) As LongDim strServerName As StringDim strLocalGroupName As StringDim strUserName As StringDim udtLGMemInfo As LOCALGROUP_MEMBERS_INFO_3Dim lngWin32apiResultCode As LongDim lngBufPtr As LongstrServerName = StrConv(servername, vbUnicode)strLocalGroupName = StrConv(LocalGroupName, vbUnicode)strUserName = usernameudtLGMemInfo.lgrmi3_domainandname = StrPtr(strUserName)lngWin32apiResultCode = _NetLocalGroupAddMembers(strServerName, _strLocalGroupName, _3, _udtLGMemInfo, _1)NetApiBufferFree lngBufPtrLocalGroupAddUser = lngWin32apiResultCodeEnd Function'-----------------------------------------------'功能:向服务器添加用户'参数:servername 服务器名' username 用户名' Password 用户密码' Comment 用户描述' Flags 传入0就可以'返回:是否成功0-成功'作者:万伟星'日期:2003-06-5'----------------------------------------------Function UserAdd(ByVal servername As String, _ ByVal username As String, ByVal Password As _String, ByVal Comment As String, ByVal Flags As _ Long) As Longservername = StrConv(servername, vbUnicode)ername = StrConv(username, vbUnicode)Usr1.Password = StrConv(Password, vbUnicode)Usr1.Privilege = User_Priv_Userment = StrConv(Comment, vbUnicode)Usr1.Flags = FlagsUsr1.HomeDir = "OLAP Administrators"UserAdd = NetUserAdd(servername, 1, Usr1, 0) End Function'-----------------------------------------------'功能:'用户是否存在'参数:servername 服务器名' username 用户名'返回:是否存在'作者:万伟星'日期:2003-06-5'----------------------------------------------Function IsUser(ByVal servername As String, _ ByVal username As String) As BooleanDim Buffer As LongDim rcservername = StrConv(servername, vbUnicode)username = StrConv(username, vbUnicode)rc = NetUserGetInfo(servername, username, 10, _Buffer)If rc = 0 ThenIsUser = TrueElseIsUser = FalseEnd IfNetApiBufferFree BufferEnd Function'-----------------------------------------------'功能:增加Olap用户'参数:无'返回:是否成功'作者:万伟星'日期:2003-06-5'----------------------------------------------Public Function AddOlapUser() As BooleanIf Not IsUserInGroup(UF_OLAP_USER, OLAP_Administrators) ThenIf UserAdd(CurrentMachineName, UF_OLAP_USER, UF_OLAP_USER, "用友U8管理系统——管理驾驶舱用户", 0) <> 0 ThenMsgBox "用户添加失败,请检察是否有同名用户", vbExclamation, "系统错误"Exit FunctionEnd IfIf LocalGroupAddUser(CurrentMachineName, OLAP_Administrators, UF_OLAP_USER) <> 0 The nMsgBox "用户添加到OLAP Administrators组失败,请与系统管理员联系", vbExclamation, "系统错误"Exit FunctionEnd IfEnd IfAddOlapUser = TrueEnd Function'-----------------------------------------------'功能:用户是否在用户组中'参数:username 用户名' GroupName 组名'返回:是否存在'作者:万伟星'日期:2003-06-5'----------------------------------------------Public Function IsUserInGroup(username As String, GroupName As String) As Boolean Dim lngWin32apiResultCode As LongDim strServerName As StringDim strUserName As StringDim lngBufPtr As LongDim lngEntriesRead As LongDim lngTotalEntries As LongDim lngResumeHandle As LongDim udtLGInfo0 As LOCALGROUP_USER_INFO_0Dim lngEntry As LongDim strLocalGroup As StringDim lngListCounter As LongstrServerName = _StrConv("", _vbUnicode)strUserName = _StrConv(username, _vbUnicode)DolngWin32apiResultCode = _NetUserGetLocalGroups(strServerName, _strUserName, _0, _LG_INCLUDE_INDIRECT, _lngBufPtr, _MAX_PREFERRED_LENGTH, _lngEntriesRead, _lngTotalEntries)If (lngWin32apiResultCode = NERR_Success) Or _(lngWin32apiResultCode = ERROR_MORE_DATA) ThenFor lngEntry = 0 To lngEntriesRead - 1RtlMoveMemory udtLGInfo0, _ByVal lngBufPtr + _Len(udtLGInfo0) * _lngEntry, _Len(udtLGInfo0)strLocalGroup = _PointerToString(udtLGInfo0.lgrui0_name)If UCase(GroupName) = UCase(strLocalGroup) Then IsUserInGroup = TrueExit FunctionEnd IfNextEnd IfIf lngBufPtr <> 0 ThenNetApiBufferFree lngBufPtrEnd IfLoop Until lngEntriesRead = lngTotalEntriesIsUserInGroup = FalseEnd Function。