wincc项目运行中需要维护,但有些药企需要将wincc项目进行锁屏,无法启用Windows热键和相关组合键,这样维护人员就无法启动后台查看项目运行情况,十分不方便,本文可以使用脚本的方式禁用、启动Windows热键,在wincc里就是“禁止键”---禁用用于进行操作系统访问的快捷键。
1、wincc启用“禁止键”,如下图1所示,勾选“禁止键”--即启用此功能;
图1
2、在项目中的wincc C脚本中新建一个hotkey_manage.fct的项目函数,方法如图2,脚本如图3所示:
图2
#pragma code ("UseAdmin.DLL")
#include "pwrt_api.h"
#pragma code()
#pragma code ("ALMXGINA.DLL")
#pragma option(mbcs)
int hotkey_manage(BOOL bEnable )
{
BOOL SetXGinaValue(unsigned int uiKey, BOOL *pbEnable, DWORD dwSize);
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
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 ));
return bOK;
}
图3
3、在画面中做两个按钮,一个用于启动关闭热键脚本,一个用于关闭热键脚本,如图4、图5所示:
图4--关闭热键脚本
图 5---开启热键脚本