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

一、禁用快捷键

有些项目要求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);

}

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WinCC 是西门子推出的一款用于监控与控制系统的软件。通过WinCC,我们可以创建出一个个监控界面来实时监控和控制各个设备和系统。 脚本WinCC的一种编程语言,可以用来创建自定义功能和操作,方便用户根据自己的需求进行二次开发和定制。而通过脚本,我们可以更灵活地创建模板。 在WinCC建立模板,首先需要确定好所需要的界面元素和显示内容。然后,我们可以使用脚本来实现模板的动态功能,比如根据实际数据来实时更新界面显示、根据用户输入来触发相应的操作等等。 具体步骤如下: 1. 打开WinCC软件,并选择相应的项目。 2. 在项目资源管理器选择Templates目录,右键点击该目录并选择"新建",然后选择"模板"。 3. 在模板设计器,可以通过拖拽界面元素、添加文本框和图表等方式来设计所需的模板界面。 4. 使用脚本,可以通过编写一些简单的逻辑来使模板具有动态功能。比如,可以通过脚本从数据库或PLC读取数据并进行显示,或者根据用户输入的条件来触发相应的操作。 5. 在设定好界面和功能后,保存并发布该模板。 6. 在实际使用,用户可以从模板列表选择该模板,并根据实际需要进行数据绑定和参数配置,以满足具体的监控与控制需求。 总的来说,通过脚本建立模板是WinCC软件的一种灵活、可定制的方式。用户可以根据自己的需求使用脚本来实现模板的各种动态功能,提高监控与控制系统的效率和便捷性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值