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下生成的效果一样...

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

谢谢了
...全文
276 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
内容概要:本文深入研究了电力系统状态估计问题,重点围绕无迹卡尔曼滤波(UKF)、自适应无迹卡尔曼滤波(AUKF)以及扩展无迹卡尔曼滤波(EUKF)三种先进非线性滤波方法展开理论分析与仿真验证。通过Matlab平台实现了完整的算法架构与系统建模,系统地比较了各方法在处理电力系统非线性动态特性及噪声干扰方面的性能差异,旨在提升电压幅值、相角等关键状态变量的估计精度与鲁棒性。研究突出了算法在智能电网实时监控、故障诊断与动态调度中的应用潜力,并提供了可复现的代码支持。; 适合人群:具备电力系统分析基础和Matlab编程能力的研究生、科研人员,以及从事电力自动化、智能电网状态监测与控制相关的工程技术人员。; 使用场景及目标:①掌握UKF、AUKF与EUKF在非线性状态估计中的建模流程与实现细节;②应用于电力系统实时数据融合、动态安全评估与运行优化,提升估计系统的抗噪能力与适应性;③为学术论文撰写、课题申报或工程原型开发提供算法参考与仿真基础。; 阅读建议:建议结合Matlab环境逐模块调试代码,深入理解滤波器在不同噪声水平和系统非线性程度下的响应特性,重点关注协方差自适应机制与数值稳定性处理策略,并可根据具体应用场景调整系统模型与参数配置以优化性能。
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!

1,488

社区成员

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

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