搬家第14天-182.WinccV7.3 c脚本,同一个按钮根据登录用户不同执行不同的操作

今天晚上在群上看到有一个网友问起过在wincc中如何实现同一个按钮,如果是用户1点击就退出wincc项目程序,如果是用户2点击就退出用户程序并关机。单独的退出wincc和单独的关机脚本,都可以使用向导来自动生成,根据用户不同执行不同的操作,无非就是加上条件判断而已,其实还是很好实现的。

新建一个wincc项目,新建两个用户user1和user2,给项目属性设定登录快捷键ctrl+L。新建一个画面,画面上放置一个按钮,在按钮的鼠标点击事件中添加以下c脚本:

#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
char *username=GetTagChar("@CurrentUser");
if(strcmp(username,"user1")==0) 
   DeactivateRTProject ();//退出wincc
if(strcmp(username,"user2")==0) 
   DMExitWinCCEx (DM_SDMODE_POWEROFF);//退出wincc并关机
}

保存运行,就可以看到效果了。

 

从这个练习可以看出,尽管编辑时定义的用户是User1和User2,但实际上登录后@CurrentUser得到的还是user1或者user2,全部都是小写字母。此外比较两个字符串是不是一致,这里使用了strcmp函数。开始我想当然的用==来判断是不是一致,结果始终不对,看来还是学艺不精啊。

posted @ 2021-02-11 11:46  来自金沙江的小鱼  阅读(741)  评论(0编辑  收藏  举报