WinCC中通过脚本禁用或启用Windows快捷键

阅读: 评论:0

一、禁用快捷键

有些项目要求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
通过“uiKey”参数指定Windows组合键,可使用以下常数:
#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
注意CTRL+ESC等同于Windows键。

pbEnable
pbEnable参数是一个指向BOOL或DWORD类型的指针,如果所指的变量值为TRUE,则组合键被使能,如果为FALSE则禁止。

dwSize
dwSize参数为pbEnable指针所指向的变量的字节数。

//传递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);

}

本文发布于:2025-04-08 00:14:00,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/1744042473584995.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:快捷键   脚本   WinCC   Windows
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23