NetUserAdd API函数的奇怪问题

impasse 2008-12-06 05:58:02
我从网上下载了一段VB的代码.是调用 NetUserAdd 来创建与删除系统用户的:

Option Explicit
Private Declare Function NetUserAdd Lib "netapi32.dll" (ServerName As Byte, ByVal Level As Long, Buffer As USER_INFO_1, ParmError As Long) As Long
Private Declare Function NetUserDel Lib "netapi32.dll" (ByVal ServerName As String, ByVal UserName As String) As Long
Private Type USER_INFO_1
ptrName As Long
ptrstrPassWord As Long
dwstrPassWordAge As Long
dwPriv As Long
ptrHomeDir As Long
ptrComment As Long
dwFlags As Long
ptrScriptPath As Long
End Type
Private Const NERR_Success As Long = 0&
Private Const USER_PRIV_USER = 1
Private Const UF_NORMAL_ACCOUNT = &H200
Private Const UF_SCRIPT = &H1
Private m_strUserName As String
Private Const UF_ACCOUNTDISABLE = &H2
Private Const UF_HOMEDIR_REQUIRED = &H8
Private Const UF_PASSWD_NOTREQD = &H20
Private Const UF_PASSWD_CANT_CHANGE = &H40
Private Const UF_LOCKOUT = &H10
Private Const UF_DONT_EXPIRE_PASSWD = &H10000
Private Declare 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 Long
Private Type LOCALGROUP_MEMBERS_INFO_3
lgrmi3_domainandname As Long
End Type
Function AddUser(ByVal UserName As String, ByVal PassWord As String) As Boolean
AddUser = False
Dim ParmError As Long
Dim UI As USER_INFO_1
Dim UI3 As LOCALGROUP_MEMBERS_INFO_3
Dim Result As Long
With UI
.ptrName = StrPtr(UserName)
.ptrstrPassWord = StrPtr(PassWord)
.dwstrPassWordAge = 3
.dwPriv = USER_PRIV_USER
.ptrComment = StrPtr("")
.dwFlags = UF_SCRIPT Or UF_NORMAL_ACCOUNT Or UF_PASSWD_CANT_CHANGE Or UF_DONT_EXPIRE_PASSWD
End With
Result = NetUserAdd(0, 1, UI, ParmError)
Result = AddUserToGroup(vbNullString, "Administrators", UserName)
If Result = NERR_Success Then AddUser = True
End Function
Function DelUser(ByVal UserName As String) As Boolean
Dim lngResult As Long
Dim strUnicodeUserName As String
strUnicodeUserName = StrConv(UserName, vbUnicode)
lngResult = NetUserDel(vbNullString, strUnicodeUserName)
If lngResult = NERR_Success Then DelUser = True
End Function

Function AddUserToGroup(ByVal ServerName As String, ByVal GroupName As String, ByVal UserName As String) As Long
Dim lngResult As Long
Dim strServerName As String
Dim strLocalGroupName As String
Dim udtLGMemInfo As LOCALGROUP_MEMBERS_INFO_3
strLocalGroupName = StrConv(GroupName, vbUnicode)
udtLGMemInfo.lgrmi3_domainandname = StrPtr(UserName)
lngResult = NetLocalGroupAddMembers(vbNullString, strLocalGroupName, 3, udtLGMemInfo, 1)
End Function

Private Sub Command1_Click()
AddUser "impasse", "win"

End Sub

程序写好后,按F5运行,点击COMMAND1正常创建了一个用户名为"impasse"密码为"win"的"Administrator"用户.按理说这就正常没事了.结果我生成"工程1.exe"后运行,再点击"command1"系统没反应了...不创建用户..

我再回到设计环境下.加了一个COMMAND2 DELUSER 却正常了...就是说.编译后能正常删除用户不能创建,这样我又以为是我的编译环境不行(WINDOWS XP SP3)我马上放到 WINDOWS SERVER 2003 SP2下编译..生成EXE文件后与XP下生成的效果一样...

各位高手人..出出手啊.帮帮我..

谢谢了
...全文
275 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
贝隆 2009-09-03
  • 打赏
  • 举报
回复
学习
zzzzzzlin 2009-09-03
  • 打赏
  • 举报
回复
用:
Dim a as Long
a = 1
Result = NetUserAdd(0, a, UI, ParmError)
替换:
Result = NetUserAdd(0, 1, UI, ParmError)

成功通过。
impasse 2009-01-15
  • 打赏
  • 举报
回复
回楼上的,不是这样的.我编译后直接在本机运行都不能正常创建.如果你有空的话可以把源码复制到工程里再编绎下试试,看看在你机器上运行的结果如何,谢谢了!
qhluo02 2009-01-13
  • 打赏
  • 举报
回复
是不是没有把相应的lib拷贝到工程exe目录下呀?你用Package把VB工程打包一下看看有那些库文件
impasse 2008-12-30
  • 打赏
  • 举报
回复
权限够了,是超级管理员.人品也没问题,已经通过IS90RP认证!!
给个正常答复吧.或帮忙编译一下自己试下,能行就发给我.相信不会太浪费你们宝贵的时间.
感谢了!!
happy_sea 2008-12-16
  • 打赏
  • 举报
回复
权限问题 or 人品问题?
qq28262313 2008-12-16
  • 打赏
  • 举报
回复
ding
代码下载链接: https://pan.quark.cn/s/90052d681b2f 本书系统地阐述了利用C语言进行程序开发的各种方法与技巧,全书总共分为十二个章节,涵盖了从基础到高级的多个方面,包括但不限于基础知识、指针运用、数据结构、算法设计、数学运算、文件处理、库函数应用、图形图像生成、系统调用、加密与安全机制、游戏开发以及综合案例等。整个书籍精心设计了三百个实例,每个实例都着重展示了其在实际应用中的价值。本书既适合作为C语言编程的入门教材供初学者研习,也能够为程序开发者、相关专业培训机构的教师和学生提供参考和借鉴。第一章聚焦于基础知识,详细介绍了进制转换、条件判断、多重循环图形打印、循环的数学应用、数组操作、字符与字符串处理、函数使用、趣味计算、宏定义与位运算等内容。第二章深入探讨了指针的相关知识,包括指针变量、指针与数组的关系、指针与函数的交互、字符串与指针的结合以及指向指针的指针运用。第三章着重于数据结构的学习,涵盖了结构体、链表、栈与队列、串与广义表、二叉树以及图及其应用等多个重要主题。第四章详细介绍了算法设计,涉及简单问题求解算法、排序算法、查找算法、数学定理与猜想以及逻辑推理与判断等内容。第五章围绕数学应用展开,讨论了素数问题、整数趣题、数学问题求解、矩阵运算以及生活中的数学实例。第六章专门讲解文件操作,包括了文件读写操作、文件内容处理、文件的创建与查找删除、以及文件相关操作等。第七章介绍了库函数的调用,涵盖了时间转换与操作函数、数学函数、字符串与字符函数以及其他各类函数的使用方法。第八章则聚焦于图形图像的处理,详细介绍了基本图形的绘制、色彩填充与使用技巧等。

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧