用wincc复制器复制了一个项目,在办公室的电脑上不能打开用户对话框,即用户名、密码,后来经过处理可打开,现在有一台电脑系统重装了,再安装wincc又不能打开了,以前的处理方法忘了,项目中的电脑名与我的电脑中名是相同的,将这一项目放到另一台电脑上更改项目电脑名能打开登陆筐,再将这另一台电脑上能打开登陆筐的项目移到系统重装的电脑上并更改项目电脑名,就打不开登陆对话框了,那位大虾能指点,下面是登陆对话框的程序:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 3
#define USER_NAME "UserName"
#define LAST_USER_NAME "szGlLastUserName"
#define ACCESS_LEVEL "UserLevel"
#define LAST_ACCESS_LEVEL "wGlLastAccessLevel"
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
#define BASE_PICTURE "Start.Pdl"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
SetTagChar (LAST_USER_NAME, GetTagChar (USER_NAME));
SetTagWord (LAST_ACCESS_LEVEL, GetTagWord (ACCESS_LEVEL));
SetVisible (BASE_PICTURE,"Bildfenster7",TRUE);
}
问题补充:
上面程序是一个按钮里的C程序,按下这个按钮即弹出了登陆对话框,即运行GlLogon.pdl画面,在能正常运行的那台电脑上单独运行GlLogon.pdl也能打开登陆对话框,但GlLogon.pdl的属性里看不到被编译的东西,双击GlLogon.pdl有General对话框弹出,里面有
Username tag值为UserName
Userlevel tag值为UserLevel
Focus key值为120
现在时是在重装系统的电脑上运行GlLogon.pdl时也弹不出登陆对话框,这有一个白框,不知何故
最佳答案
如何在WinCC中用一个按钮激活用户登录/退出对话框
任务要求:通过一个登录/退出按扭来实现用户登录,从而实现授权管理。
前提:已经在用户管理里面设置好了一个用户和相应的密码。
方法:
1.组态两个按扭。
2.在登录按扭鼠标动作中组态一个C动作,输入下面脚本:
#pragma code("useadmin.dll")
#include "PWRT_API.H"
#pragma code()
PWRTLogin('1');
最后一句改成PWRTLogout();就是退出
3.如果分别组态一个登录按扭、一个退出按扭,那么还需要一个二进制变量来实现两个按扭的交替显示。
4.其实也可以只组态一个按钮,在登陆的状态下,再次单击,此时登陆的用户名已经存在,而且此时“退出登录”选项也变成可选,击之即可退出,并不需要再次输入密码。
提问者对于答案的评价:
程序已中有用户登陆对话框,只是我的电脑上不能正常调用,不需要新建对话框,不过还是表示感谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc269670.html