技术论坛

 用wincc自带的登录系统,怎么实现登录成功提示功能?

返回主题列表
作者 主题
小猪宝宝♂
侠圣

经验值: 3434
发帖数: 211
精华帖: 4
楼主    2017-10-19 15:40:45
主题:用wincc自带的登录系统,怎么实现登录成功提示功能?

近日在找答案中发现有西友问,能不能用变量来判断登录成功?大家都知道,wincc的内部变量只有一个用户名的@CurrentUser,而没有密码的变量。但是wincc自带的登录系统是可以实现用户、密码匹配的,不需要我们再去另做判断,如果没有用户登录,变量@CurrentUser是没有值的,我们可以利用这一点来完成这个功能。

首先,我们在“用户管理器”中创建两个用户user和user1,并设立密码;

然后,创建一个画面,有登录、注销、退出按钮,程序自己写比较简单,一个输入输出域关联变量@CurrentUser,

最后,写一个全局脚本,触发变量为@CurrentUser,编译,保存。

还有一步,要在计算机属性-启动-全局脚本运行-确定

运行系统,观察实验。

脚本程序部分如下:

#include "apdefap.h"

int gscAction( void )

{

#pragma code("useadmin.dll")

#include "PWRT_API.H"

#pragma code()

char* CUser = NULL;

 CUser = GetTagChar("@CurrentUser");

if(strcmp(CUser,"user")==0) //Return-Type: long int 

{

   MessageBox(NULL,"USER登录成功!","恭喜",

MB_OKMB_ICONEXCLAMATIONMB_SETFOREGROUNDMB_SYSTEMMODAL);

  }

 if ( strcmp(CUser,"user1")==0)

  {

   MessageBox(NULL,"USER1登录成功!","恭喜",

MB_OKMB_ICONEXCLAMATIONMB_SETFOREGROUNDMB_SYSTEMMODAL);

  }

 

return 0; 

}


哈哈哈哈,人生不如意事,十有七八,能与人诉之一二。
小猪宝宝♂
侠圣

经验值: 3434
发帖数: 211
精华帖: 4
1楼    2017-10-19 15:45:07
主题:回复:用wincc自带的登录系统,怎么实现登录成功提示功能?






实际步骤图



哈哈哈哈,人生不如意事,十有七八,能与人诉之一二。
小猪宝宝♂
侠圣

经验值: 3434
发帖数: 211
精华帖: 4
2楼    2017-10-19 15:46:14
主题:回复:用wincc自带的登录系统,怎么实现登录成功提示功能?

运行效果图



哈哈哈哈,人生不如意事,十有七八,能与人诉之一二。
城外之人
至圣

经验值: 17284
发帖数: 8465
精华帖: 18
3楼    2017-10-20 09:21:16
主题:回复:用wincc自带的登录系统,怎么实现登录成功提示功能?

你这用户名与密码是否匹配没有判断啊?!

不管用哪个用户名,登录成功后,@CurrentUser的值就是登录用户名,而不能将IO输入域与@CurrentUser关联。

无论成与败,无论甜与苦,我还是我。
小猪宝宝♂
侠圣

经验值: 3434
发帖数: 211
精华帖: 4
4楼    2017-10-20 09:30:12
主题:回复:用wincc自带的登录系统,怎么实现登录成功提示功能?

因为用的是系统自带的登录系统,所以不用判断是否匹配。

可以将IO输入域与@CurrentUser关联。图中的IO输入域就是@CurrentUser的值


哈哈哈哈,人生不如意事,十有七八,能与人诉之一二。
小猪宝宝♂
侠圣

经验值: 3434
发帖数: 211
精华帖: 4
5楼    2017-10-20 09:34:06
主题:回复:用wincc自带的登录系统,怎么实现登录成功提示功能?

另外,最简单的判断登录是否成功的方法就是用一个IO输入域显示@CurrentUser的值就可以了。

写这个主要是为了满足好奇心,能不能登录成功后显示一个窗口提示。大家不要被我误导,如果甲方非要出对话框的话,可以这么写。没要求的话直接对话框就可以了。


还可以实现当某一个用户登录成功后,需要完成某段指令

哈哈哈哈,人生不如意事,十有七八,能与人诉之一二。
城外之人
至圣

经验值: 17284
发帖数: 8465
精华帖: 18
6楼    2017-10-20 12:29:00
主题:回复:用wincc自带的登录系统,怎么实现登录成功提示功能?

我觉得,你还是另建一个文本型内部变量吧,不然太容易产生异议了。

本来@CurrentUser是专用于登录用户的。如果有登录用户,@CurrentUser的值就是这个用户名称。如果没有用户登录,它的值为空字符。

可是,你现在直接“写”@CurrentUser的值!系统也啥眼了。

无论成与败,无论甜与苦,我还是我。
小猪宝宝♂
侠圣

经验值: 3434
发帖数: 211
精华帖: 4
7楼    2017-10-20 16:56:24
精华帖  主题:回复:用wincc自带的登录系统,怎么实现登录成功提示功能?

按照万版主的说法改进了一下程序,想学好工控真不容易啊,什么都得会,咨询了一下玩C语言的同事才搞定的。

#include "apdefap.h"

int gscAction( void )

{

#pragma code("useadmin.dll")

#include "PWRT_API.H"

#pragma code()

char* CUser = NULL;

CUser = GetTagChar("@CurrentUser");

if (strlen(CUser) != 0)

  {

strcat(CUser, "登录成功"); //Return-Type: char* 

   MessageBox(NULL,CUser,"恭喜!恭喜",

MB_OKMB_ICONEXCLAMATIONMB_SETFOREGROUNDMB_SYSTEMMODAL);

  }

return 0;

哈哈哈哈,人生不如意事,十有七八,能与人诉之一二。
淡泊的阳光
至圣

经验值: 14800
发帖数: 666
精华帖: 0
8楼    2017-10-21 21:32:52
主题:回复:用wincc自带的登录系统,怎么实现登录成功提示功能?


学习一下!

相信自己可以适应一切
笨笨笨笨
奇侠

经验值: 7128
发帖数: 1022
精华帖: 2
9楼    2017-10-23 09:38:21
主题:回复:用wincc自带的登录系统,怎么实现登录成功提示功能?


  学习一下

心有多远路就有多远
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。