在WinCC 做的图控画面上如何实现用户登陆、退出和关闭WinCC图控的功能

各位高手你们好!小弟我请教一个问题:我需要实现的功能描述如下:
 1、WinCC图控专案运行时,会先打开一张主画面,主画面中包括很多按钮,其中一个是用户登陆的按钮,当我点击登陆按钮时回弹出一个小的用户登陆画面(此时原来的主画面还存在),用户登陆画面中有“用户登陆”、“用户登出”、“修改已登陆用户的密码”、“配置新用户”和“退出WinCC专案”的功能,当用户登陆成功后,会在WinCC的画面的左上角显示目前登陆的用户名和等级,没有用户登陆的时候显示用户名为“None”,等级为0,谢谢各位,小弟我的邮箱是wyq8327@163.com,如果有类似的资料请发给我,如果只有我要的部分功能也可以,万分感谢!

问题补充:
请问麦子:
     您提供的这段代码该加在什么地方,是在用户登陆的按钮的C脚本里面还是在其他什么地方,谢谢!

最佳答案

如何实现用户登陆日志(wincc中用c脚本实现?)( 柳树成林原创)
 用户登陆日志:(包括用户的登陆退出信息,以便查询在什么时间段是哪个用户在使用这个监控软件)

 #i nclude "apdefap.h"

 int gscAction( void )
 {
 #pragma code("kernel32.dll")
 VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);
 #pragma code()

 char*  username;
 char buf[128];
 static char preuser[128];
 unsigned a,b,c,d,e,f;
 FILE* fp;
 SYSTEMTIME sysTime;

 //读取系统时间,并且复制给变量a,b,c,d,e,f
 GetLocalTime(&sysTime);

 a=sysTime.wHour; 
 b=sysTime.wMinute; 
 c=sysTime.wSecond; 
 f=sysTime.wYear; 
 e=sysTime.wMonth; 
 d=sysTime.wDay;

 //得到当前用户名称
 username = GetTagChar("@CurrentUser");
 fp= fopen("c:\\wincclog.txt", "a+"); 
 if(strcmp(username, preuser)!=0)    //如果当前用户名称和前一个用户名不同
 {
        if((strcmp(username, "")  != 0)&&(strcmp(preuser, "") == 0))     //如果当前用户名称不空同时前一个用户名为空
   
        { 
                 sprintf(buf, "用户:%s\t登陆时间是:\t %d-%d-%d,%d-%d-%d\n", username,a,b,c,d,e,f);
                 fputs(buf, fp);
         }
        else
        { 
                if((strcmp(username, "") == 0)&&(strcmp(preuser, "")  != 0))     //如果当前用户名称为空同时前一个用户名不空
   
               { 
                          sprintf(buf, "用户:%s\t退出时间是:\t %d-%d-%d,%d-%d-%d\n", preuser,a,b,c,d,e,f);
                          fputs(buf, fp);
                }

                else
               { 
                          sprintf(buf, "用户:%s\t退出时间是:\t %d-%d-%d,%d-%d-%d\n", preuser,a,b,c,d,e,f);
                          fputs(buf, fp);
                          sprintf(buf, "用户:%s\t登陆时间是:\t %d-%d-%d,%d-%d-%d\n", username,a,b,c,d,e,f);
                          fputs(buf, fp);
                }
         }
 }

 strcpy(preuser, username);
 fclose(fp);

 return 0;
 }

提问者对于答案的评价:
谢谢各位高手的回答,请问麦-子,您提供的代码应该放在什么位置,谢谢!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午10:45
下一篇 2019年6月11日 上午10:45

相关推荐

  • wincc V6.2的变量归档,为什么慢速归档的归档记录也被存在SQL的dbo.Taguncompressed下

    我用的是wincc V6.2版本的,为什么我在做慢速归档的时候,归档记录仍然被存在数据库中慢速归档文件夹下的dbo.Taguncompressed表里面,是压缩记录。&n…

    SIMATIC WinCC 2019年6月11日
  • 关于报警记录

    报警恢复正常后,能够在长期归档或短期归档显示出来吗?怎么做呢?例如:我的加工温度超过75度就报警,但是当温度超过75后报警,但是经过一段时间后,温度低于75后正常。我想在归档中显示…

    SIMATIC WinCC 2019年6月11日
  • wincc 用户登录弹出框的显示

    wincc用户登录框是用 #pragma code("useadmin.dll") #include "PWR…

    SIMATIC WinCC 2019年6月11日
  • Wincc中内部变量问题

    Wincc中内部变量是怎么连接的,我不明白内部变量怎么跟着相关系统值变化的,比如:某些变量没和PLC连接,不是系统变量,属于interl Tags,但它还可以随PLC数据…

    SIMATIC WinCC 2019年6月11日
  • wincc 7.0 OPC XML访问

    我在虚拟机里建了一个wincc OPC XML DA服务器,配置完后,可以通过浏览器访问http://localhost/WinCC-OPC-XML/…

    SIMATIC WinCC 2017年6月9日
  • 博图V14里面的WINCC可以编辑上位机桌面吗

    想了解,用什么软件可以编辑上位机的界面,博图里面的wincc能实现这一功能吗 最佳答案 在Win7系统中安装TIA Portal V13 WinCC&…

    SIMATIC WinCC 2020年11月1日
  • KEPSERVER组网

    现在我单台计算机可以利用串口KEPSERVER采集仪表数据,现在我想在1#计算机上不仅能显示自己采集的数据,也能显示2#机采集的数据。我应该如何设置。利用多用户结构是否可以?很多人…

    SIMATIC WinCC 2021年7月5日
  • LOGOFF

    Win-CC中的事件里用户管理中的logoffa是什么意思?怎么应用? 问题补充:我想把我的当前值备份一下.是不是当我按下备份按钮之后还要建一个"退出登录"---他的变量调用的就是…

    SIMATIC WinCC 2019年6月11日
  • WINCC在线趋势显示

    我复制了一个WINCC项目到其他一台计算机上。用的系统是XP原来的系统是是2000,WINCC用的是5.1运行后发现除了在线趋势不能显示其他都好用包括模拟量采集和开关量的动作,在线…

    SIMATIC WinCC 2019年6月11日
  • winccflexible做用户管理

    如何实现用户登录,只输入密码正确即可登录,不用输入用户名。谢谢! 问题补充:tu pian 最佳答案 在左侧项目树,用户管理中运行系统安全性设置里“勾选只能使用密码登录”…

    SIMATIC WinCC 2017年6月8日