wincc打开后自动进入登录界面 (wincc怎么做登录输入框)

WinCC自带的登录界面不太好看,和这个看脸的时代显得有点不太协调。

winccvbs制作登录界面,wincc怎么做登录输入框

图1 WinCC登录对话框

不过好在WinCC比较开放。我们完全可以自己实现不同风格的登录界面。首先准备两个文本类型的内部变量,分别用于存储用户名和密码。

winccvbs制作登录界面,wincc怎么做登录输入框

图2 内部变量

然后再准备登录界面。两个I/O域分别绑定上图中两个内部变量。

winccvbs制作登录界面,wincc怎么做登录输入框

图3 自定义登录界面

其中密码输入框的属性“隐藏输入”需要设置为“是“。

winccvbs制作登录界面,wincc怎么做登录输入框

图4 设置属性

选中“退出“按钮,在它的鼠标左键点击事件中输入下面代码。

#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
#pragma code ("useadmin.dll")
#include "PWRT_api.h"
#pragma code()

//退出登录
PWRTLogout();

//清空用户名和密码
SetTagChar("UserName","");
SetTagChar("Pst","");
}

再选中“确定“按钮,在它的鼠标左键点击事件中输入下面代码。

#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
#pragma option(mbcs)
#include"USEGENAP.H"
#pragma code("UseAdmin.DLL")
#include"pwrt_api.h"
#pragma code ()

if(PWRTSilentLogin(GetTagChar("UserName"),GetTagChar("Pst"))==FALSE)
{

MessageBox(NULL,"用户名或密码错误,请重新输入!","警告",MB_ICONEXCLAMATION|MB_SYSTEMMODAL);

//如果输入错误就清除用户名和密码
SetTagChar("UserName",""); //Return-Type: BOOL
SetTagChar("Pst",""); //Return-Type: BOOL

}
else
{

//登录成功的处理代码
//比如切换画面。。。。

}
}

运行效果下图所示。

winccvbs制作登录界面,wincc怎么做登录输入框

本例使用了内部变量配合I/O域来获取用户名和密码。我们也可以使用文本框控件或者第三方控件直接获取输入的用户名和密码,这样可以不需要内部变量。

winccvbs制作登录界面,wincc怎么做登录输入框