加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

wincc7.3使用脚本启用禁用windows热键

(2020-01-18 17:39:00)
标签:

wincc7.3

c脚本

热键屏蔽

热键启用

分类: 西门子软硬件
在实际项目中,我们需要禁用windows热键,但有时候需要在不退出wincc项目的情况下启用windows热键,这个时候需要使用脚本来操作。
在wincc项目使用c脚本新建一个项目模块,完整代码如下:
#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;
}
在wincc画面放置一个按钮用于禁止热键,鼠标点击事件引用上面新建的项目函数
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END

//return bOK;
hotkey_manage(0);
}
画面上再放置一个按钮,用于启用热键,鼠标点击事件引用新建的项目函数
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
hotkey_manage(1);
}
 
可以看出核心的函数就是SetXGinaValue,由ALMXGINA.DLL提供。

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有