我在WINCC中屏蔽了所有的退出热键,我在操作画面中添加了一个按钮,在该按钮上添加了一个退出WINCC的动态向导,可以正常的退出WINCC,但这不是我要的效果,因为这样一来不论是操作人员还是我们维护人员都可以退出WINCC,我想要的效果是当点击退出WINCC按钮的时候弹出一个要求输入用户名和密码的对话框,或者简单点就一个密码输入对话框,怎么做呢?我用的是PCS7 V5.0里的WINCC,在在退出WINCC的动态向导里没有找到那里可以设置退出时弹出要求输入用户名和密码的对话框,还有就是如果用户名和密码不对的话可以取消该对话框而不影响操作!
问题补充:
麻烦各位步骤写得详细一点,谢谢了!
请问 dcount107下面的C代码是写在属性里的授权里还是在事件的鼠标动作里?还有就是自己做的画面名是什么?比如我的画面名是1那我在脚本里的哪个地方调用?不好意思,呵呵,刚学WINCC,只懂得一般的变量连接,没有C语言的基础!再次麻烦大家了!谢谢!
最佳答案
1、最简单的就是给退出按钮设定一个权限号,比如99,该权限号需在用户管理器中预先设置好,并将该权限分配给特定的用户。
此方法无需编程,点击按钮时如用户无99号权限,则弹出无权操作对话框。当然因为简单所以无法满足楼主的弹出输入用户名和密码的对话框,用户需要通过热键或登陆按钮进行登陆,只有拥有99号权限的用户登陆后方可退出。
2、如果需要点击按钮时如果没有权限则弹出登陆对话框,可将退出按钮脚本改为如下:
//注:99号权限需在用户管理器中预先设置号并分配给特定用户
//不要给退出按钮分配权限,由脚本来负责检测权限。
//如果想弹出登陆对话框,登陆正确后自动退出WinCC则不能使用PWRTLogin('c');对话框,需要自己制作登陆画面,并使用PWRTSilentLogin进行后台登陆。
#pragma code("useadmin.dll")
#include "PWRT_api.h"
#pragma code("")
#define EXIT_PERMISSION 99
int iAnswer=0;
if (PWRTCheckPermission(EXIT_PERMISSION,TRUE))
{
ExitWinCC();
}
else
{
iAnswer = MessageBox(NULL,"对不起,您没有权限退出WinCC,是否重新登陆?","错误",MB_YESNO | MB_SETFOREGROUND|MB_SYSTEMMODAL );
if (iAnswer ==IDYES) PWRTLogin('c');
}
------------------------
将脚本放在退出WinCC按钮的鼠标事件中。
提问者对于答案的评价:
谢谢!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc275554.html