各位:请问使用DELPHI如何重设WINDOWS用户的密码,我找到的资料是NetUserChangePassword可以修改用户密码,但是需要输入旧密码,因我有管理员权限,希望重设密码而不是修改密码,请问如何可以做到,新手来的,最好带有范例,谢谢.
解决方案 »
- ATGrid报表控件/WEB插件[专业版]
- 在DELPHI里使用了一个图像控件,如何在画图程序中使用这个图像控件来作图?
- 求汉字的asc码, 参考程序!
- 和串口通信时,开了几个线程,运行中有一个线程死掉了,如何强行终止该线程?在哪里终止?
- 各位高手,请给小妹赐教
- 请教如何制作一个不超过100KB的含有窗体的EXE文件?
- VCL中的一个Win32API的声明错误
- Delphi的精华要点是什么,如何才能学好他
- 一些VB中的字符串操作函数,求转成DELPHI的,谢谢
- 如何获取汉字的拼音的首个字母呢?
- 如何用DELPHI读取自己QQ上面所有的群号码?
- file not found:avcaplib_tlb.dcu
我在WINDOWS下使用NET
net user administrator 123456
都可以更改密码呀或者VBS
objUser.SetPassword 都可以在不用输入旧密码的情况下重设密码.
delphi 应也能做到吗?
等待解答...
var
user,pass:string;
begin
user:='admin';
pass:='123456';
WinExec(pchar('cmd /c net user /add '+user+' '+pass+''),0);
end.
VS2005编译运行成功 改成delphi代码也不难 我就不帮你了
关键函数是
NET_API_STATUS NetUserSetInfo(
LPCWSTR servername,
LPCWSTR username,
DWORD level,
LPBYTE buf,
LPDWORD parm_err
);
和USER_INFO_1003这个结构#include <stdio.h>
#include <windows.h>
#include <lm.h>
#pragma comment(lib,"netapi32.lib")
int wmain(int argc, wchar_t *argv[])
{
DWORD dwLevel = 1003;
USER_INFO_1003 ui_1003;
NET_API_STATUS nStatus;
LPWSTR wNewPassword;
LPWSTR wComputerName;
LPWSTR wUserName;
if (argc != 3)
{
fwprintf(stderr, L"Usage: %s UserName NewPassword\n", argv[0]);
return 0;
}
wComputerName=NULL;
wUserName=argv[1];
wNewPassword=argv[2];
ui_1003.usri1003_password=wNewPassword;
nStatus = NetUserSetInfo(wComputerName,wUserName,dwLevel,(LPBYTE)&ui_1003,NULL);
if (nStatus == NERR_Success)
fwprintf(stderr, L"%s's password has been changed\n", argv[1]);
else
fprintf(stderr, "A system error has occurred: %d\n", nStatus); return 0;
}
NET_API_STATUS = LongInt;
USER_INFO_1003 = Record
usri1003_password:PWideChar;
End;function NetUserSetInfo(ServerName:PWideChar;UserName:PWideChar;Level:LongWord;
Buf:PByte;Parm_err:PDWORD):Longint;stdcall;external 'netapi32.dll'
Name'NetUserSetInfo';procedure TForm2.Button1Click(Sender: TObject);
var
ComputerName,UserName,UserPassword:PWideChar;
nas:NET_API_STATUS;
level:LongWord;
ui_1003:USER_INFO_1003;
begin
level:=1003;
ComputerName:=nil;
UserName := PWideChar(WideString('Administrator'));
UserPassword := PWideChar(WideString('1234'));
ui_1003.usri1003_password:=UserPassword;
nas:= NetUserSetInfo(ComputerName,UserName,level,PByte(@ui_1003),nil);
if nas = 0 then
ShowMessage('密码修改成功!')
else
ShowMessage('发生错误,代码:'+IntToStr(nas));end;
问题己解决.