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日
下一篇 2017年6月10日

相关推荐

  • 安装WINCC已经安装了IIS还一直提示

    win10安装WINCC7.5 SP1,总是弹出安装安装条件不足,请先安装mocrosoft  internet IIS,但是我们电脑已经安…

    SIMATIC WinCC 2020年11月1日
  • wincc内部变量初始值

    我在做wincc的脚本,使用wincc的内部变量,但是想把某些内部变量给定初始值,怎么做,或者有没有wincc激活时就执行一次的动作吗? 最佳答案 参考:http://www.ad…

    SIMATIC WinCC 2019年6月10日
  • TIA趋势控件如何显示或隐藏趋势

    TIA趋势图,组态多条趋势线,需要每条趋势线都可以显示或者是隐藏起来。 问题补充:http://www.ad.siemens.com.cn/service/elearning/co…

    SIMATIC WinCC 2021年7月5日
  • wincc做winccwebux发布,设置画面连接网络时显示许多控件无法连接网络

    设置画面属性能连接网络时,显示一些对象“没有找到能连接网络的动作”以及控件“没有找到连接网络能力的对象”,是不是说明发布的时候这些对象和控件就无法显示了,有没有办法另其显示,且执行…

    SIMATIC WinCC 2021年7月5日
  • wincc中用VBS如何调用远程变量

    比如要调用主机中的变量,主机名为hhh,客户机中可以这样调用吗?是使用HMIRUNTIME("")吗。举个具体的例子 最佳答案 在客户机使用脚本访问变量和在服务…

    SIMATIC WinCC 2019年6月11日
  • 西门子工控机重启

    厂里有台西门子工控机安装wincc与PLC连接,正常运行时连接PLC时如果拔掉网线电脑会南屏重启。请问这是在哪里设置取消,是在wincc里面还是电脑里面设置 最佳答案 南屏重启?是…

    SIMATIC WinCC 2021年7月5日
  • wincc 和PLC300 TCP/IP通讯

    问题:wincc和西门子300 (315-2PN DP)用 TCP/IP通讯不上。故障可以确定是wincc项目的问题,这个项目是在原有和PLC400通…

    SIMATIC WinCC 2021年7月5日
  • 模拟量如何在上位机显示

    刚接触step7,上位是wincc,像温度,压力这样的模拟量输入点,只要求在上位机显示,我在step7符号表里是用PIW这样的直接外部输入格式的,在用wincc做上位的时候看见好像…

    SIMATIC WinCC 2019年6月11日
  • audit7.0sp3无法运行

    wincc v7.0 sp3欧洲版,与audit 7.0 sp3,audit无法运行,显示 runtime error&…

    SIMATIC WinCC 2017年6月19日
  • 关于WINCC的符号库

    我在绘制流程图时发现从WINCC的图库中调用的图形不能进行翻转的操作(比如阀门),各位可以指点一下吗? 最佳答案 不是所有的库图形都支持旋转操作。如果在控件属性中找不到旋转属性,那…

    SIMATIC WinCC 2019年6月11日