wincc7.3项目运行中修改当前用户密码,输入旧密码,输入新密码,确认按钮。用脚本怎么实现?从网上找的看起来挺复杂。也没试成功
问题补充:
客户要求可以更改密码,我见其他的软件也可以改,触摸屏也能改,怎么会不安全呢?能给个修改密码的具体实例吗?
最佳答案
可以的,我正在做的一个项目已经做好了。有几种方法:1、用ODK做2、用数据库做在PW_USER表中,用DBConnect链接,DBOpen打开表,然后DBNewRecord和DBSetFieldData和DBUpdateRecord即可。
用ODK做也可以
#pragmacode("UseGen.DLL")
#include"usegenap.h"
#pragmacode()
#pragmacode("useadmin.dll")
#include"PWRT_API.H"
#pragmacode()
#include"apdefap.h"
#pragmaoption(mbcs)
BOOLGENchangepwd(char*olDPwd,char*newpwd,char*copwd,BOOLprompt)
{
CMN_ERRORerr;
BOOLbRet;
charusername[255];
externchargc_CURDSN[1];
externHWNDgh_HWND;
printf(">————————————-GENchangepwd(STart)——————————————————-\r\n");
bRet=PWRTGetCurrentUser(username,255);
if(bRet)
printf("当前登录用户:%s\r\n",username);
else
{
printf("当前没有用户登录,不能执行密码修改功能。\r\n");
if(prompt)
{
MessageBox(gh_HWND,"当前没有用户登录,不能执行密码修改功能。","修改密码",MB_ICONINFORMATION|MB_OK);
}
returnFALSE;
}
if(!strcmp(newpwd,copwd)==0)
{
printf("输入的新密码与确认密码不一致,请重新输入。\r\n");
if(prompt)
{
MessageBox(gh_HWND,"输入的新密码与确认密码不一致,请重新输入。","修改密码",MB_ICONINFORMATION|MB_OK);
}
returnFALSE;
}
if(PWGENConnect(gc_CURDSN,&err))
{
bRet=PWGENCheckUser(username,oldpwd,&err);
if(!bRet)
{
if(err.dwError1==PWGEN_API_NO_PASSWORD)
{
printf("输入的旧密码错误。\r\n");
if(prompt)
{
MessageBox(gh_HWND,"输入的旧密码错误。","修改密码",MB_ICONINFORMATION|MB_OK);
}
}
else
{
GENerror(&err,"PWGENCheckUser",NULL);
if(prompt)
{
MessageBox(gh_HWND,"检查原用户名和密码不正确。","修改密码",MB_ICONINFORMATION|MB_OK);
}
}
printf("密码未被更改。\r\n");
gotolend;
}
bRet=PWGENChangePassword(username,oldpwd,newpwd,&err);
if(bRet)
{
printf("当前登录用户的密码已成功更改。\r\n");
if(prompt)
{
MessageBox(gh_HWND,"当前登录用户的密码已成功更改。","修改密码",MB_ICONINFORMATION|MB_OK);
}
ALGSendMsg(9002,0,0,0,username,"GENchangepwd");
}
else
{
if(err.dwError1==PWGEN_API_NO_PASSWORD)
{
printf("输入的新密码错误,长度至少6位。\r\n");
if(prompt)
{
MessageBox(gh_HWND,"输入的新密码错误,长度至少6位。","修改密码",MB_ICONINFORMATION|MB_OK);
}
}
else
{
GENerror(&err,"PWGENChangePassword",NULL);
if(prompt)
{
MessageBox(gh_HWND,"输入的用户名和新密码不正确。","修改密码",MB_ICONINFORMATION|MB_OK);
}
}
printf("密码未被更改。\r\n");
}
}
else
{
GENerror(&err,"PWGENConnect",NULL);
printf("密码未被更改。\r\n");
}
lend:
PWGENDisconnect(&err);
printf("<————————————-GENchangepwd(end)——————————————————-\r\n");
returnbRet;
}
提问者对于答案的评价:
从网上找的例子经过仔细试验成功了,你给的例子我没看懂,不过分还是给你了