wincc7.3项目运行时怎么修改用户密码?

wincc7.3项目运行中修改当前用户密码,输入旧密码,输入新密码,确认按钮。用脚本怎么实现?从网上找的看起来挺复杂。也没试成功

问题补充:
客户要求可以更改密码,我见其他的软件也可以改,触摸屏也能改,怎么会不安全呢?能给个修改密码的具体实例吗?

最佳答案

可以的,我正在做的一个项目已经做好了。有几种方法:1、用ODK做  2、用数据库做在PW_USER表中,用DBConnect链接,DBOpen打开表,然后DBNewRecord和DBSetFieldData和DBUpdateRecord即可。
用ODK做也可以

#pragma  code  ("UseGen.DLL")
#include  "usegenap.h"
#pragma  code  ()
#pragma code("useadmin.dll")
#include "PWRT_API.H"
#pragma code()

#include "apdefap.h"
#pragma option(mbcs)

BOOL  GENchangepwd(char*oldpwd,char*newpwd,char*copwd,BOOL prompt)
{
CMN_ERROR  err;
BOOL bRet;
char  username[255];
extern char gc_CURDSN[1];
extern HWND gh_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);  
 }
 return FALSE;
}

if(!strcmp(newpwd,copwd)==0)
{
 printf("输入的新密码与确认密码不一致,请重新输入。\r\n");
 if(prompt)
 {
  MessageBox(gh_HWND,"输入的新密码与确认密码不一致,请重新输入。","修改密码",MB_ICONINFORMATION|MB_OK);  
 }
 return FALSE;
}

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");
  goto lend;
 }


 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");
return bRet;
}

提问者对于答案的评价:
从网上找的例子经过仔细试验成功了,你给的例子我没看懂,不过分还是给你了

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc165265.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月10日 下午12:07
下一篇 2017年6月10日 下午12:07

相关推荐