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

相关推荐

  • 关于WinCC运行许可证的问题?

    每次开始运行示例工程DemoProgect 时,WinCC都会提示“您的软件许可证已经期满,请获取有效的许可证”。但是我运行自己创建的WinCC工程时就很正常,不会出现这…

    SIMATIC WinCC 2019年6月11日
  • 报表打印问题

    利用对象选项板里的WINCC ONline table control控件做了一个报表,运行打印时我想先预览一下应该怎样设置?另:打印时为什么从第二页…

    SIMATIC WinCC 2019年6月11日
  • 关于web发布问题

    在给客户做项目的过程中,客户要求要有web发布,我也根据西门子公司web发布的提示做了web发布,发布也能成功但有的系统画面发布不了。同时局域网内别的电脑能看到我发布的画面但看不到…

    SIMATIC WinCC 2019年6月11日
  • 关于WINCC UserArchive和OnlineTrend

    1,有没有什么方法可以设置画面中 UserArchive控件中表格的默认宽度(也就是每一列的宽度) 2,函数 TlgGetRulerValueTren…

    SIMATIC WinCC 2019年6月11日
  • wincc 库里面有没有变频器

    本人想问一个比较弱智的问题就是:wincc图形编辑器——库——全局库 里面有没有变频器啊?我找了很久都没有找到? 先谢谢咯 最佳答案 没有,你可以自己用添加. …

    SIMATIC WinCC 2019年6月11日
  • 如何将WinCC里特有的文件移植到Microsoft Visual Studio 2010里面?

    比如"apdetap.h"之类的文件是WinCC特有的,请问大侠,如何将这些特有的文件移植到Microsoft Visual Studio&…

    SIMATIC WinCC 2017年7月25日
  • 如何使用IndustrialDataBridge

    各位大侠,想请教如何使用IndustrialDataBridge。是否需要在wincc基本系统外在安装IndustrialDataBridge软件选件,哪里有这个选件,需要什么授权…

    SIMATIC WinCC 2019年6月11日
  • 如何在WINCC读出文本文件的内容

    我想要在WINCC的画面中读出一个文本文件的所有内容,而不让人能够编辑这些内容,并且不能直接打开这个文本文件。因为打开文本文件的话,文本文件的内容就可能被人更改。谢谢! 问题补充:…

    SIMATIC WinCC 2019年6月11日
  • 安装WINCC7.4出现的问题

    用WIN7安装WINCC7.4时,出现了见图这个问题,电脑重起安装还是显示这个问题,不知道怎么解决。 图片说明:    最佳答案 重启系统。如果重启后还是无法安…

    2020年11月1日
  • wincc项目不能打开…急

    朋友发了个WINCC项目给我,在我电脑上打开时弹出:组态的服务器不可用。是否打开项目,将本地计算机作为服务器?我点击了启动本地服务器,然后弹出0x8004610a的错误代码我跟他的…

    SIMATIC WinCC 2019年6月11日