根据用户名称判断是否允许Wincc退出运行系统
来源:网络收集 点击: 时间:2024-03-06打开Wincc---用户管理器。

在打开的用户管理器中,设置两个用户,本文以Administrator和land两个用户为例进行说明。两个用户的权限区别在于:Administrator用户比land用户多了一个编号的权限(任何编号都可以,比land用户至少多一个权限即可),本文以编号17为例,设置的目的是用于后文中的C脚本编写命令。
PS:经测试Wincc软件的用户名及密码没有大小写区分。

打开wincc---全局脚本---C-Editor---动作---全局动作,选中全局动作,点击右键---新建。


在新出现的空白处,把下面的代码粘贴进去
************从下面开始复制***************
#include apdefap.h
int gscAction( void )
{
{
#pragma code (UseAdmin.DLL)
#include pwrt_api.h
#pragma code()
#pragma code (ALMXGINA.DLL)
BOOL SetXGinaValue(unsigned int uiKey, BOOL *pbEnable, DWORD dwSize);
#pragma code()
BOOL bEnable;
BOOL bOK;
#define XGINA_ALLOW_SHUTDOWN 1
#define XGINA_ALLOW_LOGOUT 2
#define XGINA_ALLOW_CTL_ALT_DEL 3
#define XGINA_ALLOW_CTL_ESC 4
#define XGINA_ALLOW_ALT_ESC 5
#define XGINA_ALLOW_ALT_TAB 6
bEnable = PWRTCheckPermission(17, TRUE);
bOK = SetXGinaValue(XGINA_ALLOW_SHUTDOWN , bEnable , sizeof(bEnable ));
bOK = SetXGinaValue(XGINA_ALLOW_LOGOUT , bEnable , sizeof(bEnable ));
bOK = SetXGinaValue(XGINA_ALLOW_CTL_ALT_DEL , bEnable , sizeof(bEnable ));
bOK = SetXGinaValue(XGINA_ALLOW_CTL_ESC , bEnable , sizeof(bEnable ));
bOK = SetXGinaValue(XGINA_ALLOW_ALT_ESC , bEnable , sizeof(bEnable ));
bOK = SetXGinaValue(XGINA_ALLOW_ALT_TAB , bEnable , sizeof(bEnable ));
printf(#I101: SetXGinaValue() - bEnable=%d bOK=%d (lock/unlock windows keys)\r\n, bEnable, bOK);
}
return 0;
}
************到上面一行结束***************
编译并保存后退出。
5/7设置完成之后即可通过用户Administrator和land的登陆实现Windows热键的屏蔽。
本例中,创建用户特定的授权编号为 19 来使能 Windows 组合键。还可以使用其他的或者已经存在的权限(例如:“Higher process controlling”,编号 6)。

为了在用户登录/注销时能够使能/禁止组合键(激活上述代码),需要在全局动作中使用到触发器,即系统内部变量“@Current_User” 作为触发器变量。触发器的周期可以自行设定,触发器选项在空白处右键可以看到。

PS:组合键“Alt + F4”可以在 WinCC Explorer 中的计算机“属性”的对话框中禁止。打开“WinCC Explorer 计算机 计算机属性 图形运行系统”并选择相应的复选框来设置。禁用了该功能之后,就必须要牢记用户名的密码了,否则的话,就只有强制关机才能退出系统了。

用户名密码一定要牢记。
代码中的命令是区分大小写的。
wincc退出版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_270308.html