一、禁用快捷键
有些项目要求WinCC全屏运行,并禁止通过操作系统快捷键切换到桌面,这时只需要在WinCC的计算机属性中勾选“禁用用于进行操作系统访问的快捷键”。此后当WinCC运行时,按Win键或Ctrl+Alt+Delete等快捷键都不会起作用
二、脚本禁用/启用操作系统快捷键
在实际项目中,我们需要禁用windows热键,但有时候需要在不退出wincc项目的情况下启用windows热键,这个时候需要使用脚本来操作
禁用/启用操作系统快捷键通过C函数“SetXGinaValue()”来实现,该函数由"ALMXGINA.DLL"提供。
函数原型 | BOOL SetXGinaValue(unsigned int uiKey, BOOL *pbEnable, DWORD dwSize); |
函数描述 | 本函数通过“uiKey”参数指定Windows组合键,通过“pbEnable”参数控制组合键被禁止或使能。 |
返回值 | 函数运行成功返回TRUE,函数运行失败返回FALSE。 |
参数 | uiKey pbEnable dwSize |
//传递TRUE则启动按键,传递FALSE禁用按键
1、在wincc 项目中的全局脚本,C脚本中新建一个hotkey_manage.fct的项目函数,代码如下
#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;
}
2、在wincc画面放置一个按钮用于禁止热键,鼠标点击事件引用上面新建的项目函数
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
hotkey_manage(0);
}
3、画面上再放置一个按钮,用于启用热键,鼠标点击事件引用新建的项目函数
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
hotkey_manage(1);
}
发布者:admin,转转请注明出处:http://www.yc00.com/web/1744042470a4548568.html
评论列表(0条)