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日

相关推荐

  • Uinfied会取代经典Wincc吗

    基于WinCC消息系统的智能诊断 课程编号:V2666 课程主要内容:<br/>-消…. 点击这里,打开新窗口观看完整视频 该视频下的所有用户提问列表 Uinfie…

    2020年11月1日
  • smart 700 IEV3 触屏与电脑无法联接

    我的电脑在下载触屏程序时用网线无法与屏联接 钻石用户推荐最佳答案 链接参考Smart屏下载/回传:http://www.ad.siemens.com.cn/service/arti…

    SIMATIC WinCC 2020年11月1日
  • 远程监控Sm@rtClient监视出现问题

    在PING的通的情况下出现下面的情况,不知道怎么解决,另一个同事的电脑远程可以监控。如果这些太模糊了加我QQ344329892。请教各位大神,感谢大神们啦! 图片说明: &nbsp…

    2021年7月5日
  • 恢复删除的按钮

    我在图形编辑器主画面上删除了历史曲线按钮并保存了。怎么恢复按钮?可以在打开wincc时可以重新打开历史曲线? 最佳答案 如果删除了并保存是无法再恢复了。只能重新编辑一个该函数的按钮…

    SIMATIC WinCC 2021年7月5日
  • 怎么用通用模板连接没有前缀的变量

    怎么用通用模板连接没有前缀的变量? 看说是用SetTagValue/GetTagValue函数就可避免。怎么用啊 最佳答案 有好几个方法呢,为什么就要使用SetTagVa…

    SIMATIC WinCC 2019年6月11日
  • wincc 客户端同一画面访问多台服务器

    由于点数原因,服务器分成四到五个,再加上数据库类的服务器共七到八个,这样配置的架构参考有吗 最佳答案 建立客户机项目,加载各服务器数据参考:WinCC C/S结构快速入门…

    SIMATIC WinCC 2020年11月1日
  • WINcc如何检测心跳

    请问WINcc里面如何检查PLC里面的心跳指令,假设PLC里面某个位在0和1之间循环变化,当通讯中断时在WINcc中如何检测此信号保持在0或者1,我想做个保持0或1不动5秒以上时判…

    SIMATIC WinCC 2021年7月5日
  • WINCC的动画

    在WINCC中通过一个开关接通后2个图片交替闪烁 最佳答案 还是全局脚本,做一个定时器。通过定时器来触发交替显示图片。 提问者对于答案的评价:谢谢

    SIMATIC WinCC 2017年6月27日
  • 如何给画面窗口的io域或者文本赋值

    主画面窗口有两个子画面窗口A和B,点击A画面的按钮(调用项目函数),在B画面中的io域或者文本通过脚本赋值,通过 CALL项目函数 方法如何实现?给出实例!!下…

    SIMATIC WinCC 2017年6月13日
  • 在WINCC中如何通过脚本转换高低字节

    WINCC通过MODBU TCP连接设备,读上来的数据要进行高低字节的转换,请教大家,脚本如果写,谢谢! 最佳答案 在Modbus连接属性中有设置。WinCC …

    SIMATIC WinCC 2017年6月4日