如何在运行系统中使用事件触发来使能锁定 Windows 组合键.docx
- 文档编号:2986164
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:11
- 大小:237.71KB
如何在运行系统中使用事件触发来使能锁定 Windows 组合键.docx
《如何在运行系统中使用事件触发来使能锁定 Windows 组合键.docx》由会员分享,可在线阅读,更多相关《如何在运行系统中使用事件触发来使能锁定 Windows 组合键.docx(11页珍藏版)》请在冰豆网上搜索。
如何在运行系统中使用事件触发来使能锁定Windows组合键
如果WinCC中的锁定组合键无效该怎么办?
隐藏订货号显示订货号订货号:
西门子链接:
func=cslib.csinfo&objId=22326550&ehbid=24074628&load=treecontent&lang=zh&siteid=cseus&aktpri
m=0&objaction=csview&extranet=standard&viewreg=CN
描述
当WinCC中的锁定组合键无效时有几种解决方案。
本文将告诉您取消组合键功能。
要取消组合键功能必须激活"AlmXpmgr.exe"进程。
我们使用以下解决方案。
1.如果WinCC中的锁定组合键无效该怎么办?
2.如何在运行系统中使用事件触发来使能/锁定Windows组合键?
3.在WinCCV6中如何锁定Windows组合键?
注意
使用Windows7或WindowsServer2008系统时请遵照条目44027453中的说明来锁定组合键。
1. 如果WinCC中的锁定组合键无效该怎么办?
说明
按以下描述步骤:
No.
步骤
1
创建一个新项目(不要定义其它任何设置)
2
关闭 WinCC
3
运行 WinCC(新项目)
4
启动运行系统而不打开画面
5
停止运行系统
6
关闭WinCC
7
启动WinCC
8
再次打开先前项目
9
启动运行系统
如果该步骤不起作用,请按以下步骤检查注册表:
No.
步骤
1
开始>运行...”输入“regedit”。
2
查找代码:
HKEY_LOCAL_MACHINE/Software/Microsoft/WindowsNT/CurrentVersion/Winlogon
3
检查以下条目是否已被注册:
GinaDLL="almxgina.dll"及
Userinit="userinit,ALMXPMGR.EXE"
只有当这两个条目已被注册后组合键才会被锁定。
然后可以检查锁定是否已被输入:
No.
步骤
1
开始>运行...”,输入“regedit”。
2
查找代码:
HKEY_LOCAL_MACHINE/SOFTWARE/SIEMENS/WinCC/WinLogon/Permissions
3
在该路径下所有键都已被输入,
例如AllowAltTab或AllowCtrlAltDel...
如果这些键被设置为“1”,则有效。
如果被设置为“0”,则被锁定。
重要提示!
通常情况下,我们对直接修改注册表不做任何的担保,因为这完全是用户自己的责任。
建议无论如何先对注册表作备份,然后再按以上所说的进行。
另外,设置与具体计算机有关,也就是说,如果将项目拷贝到另一台计算机,必须重作设置。
2. 如何在运行系统中使用事件触发来使能/锁定Windows组合键?
说明
在WinCC浏览器中你可以通过“计算机属性”对话框中"属性"中的设置来锁定/使能Windows组合键。
对“计算机属性”对话框的修改只有在重启运行系统后才会生效。
下面我们会告诉您如何在运行系统中锁定/使能一个Windows按键。
该方法需要考虑WinCC用户管理中的权限级别。
T函数"SetXGinaValue()"在这里被用到。
该函数通过."ALMXGINA.DLL".提供。
函数
BOOLSetXGinaValue(unsignedintuiKey,BOOL*pbEnable,DWORDdwSize);
功能
本函数主要通过"uiKey"参数来锁定/使能Windows组合键。
关于组合键被锁定或使能的信息被通过"pbEnable"参数作为指针传送出来。
返回值
返回TRUE或FALSE.
例子
如果"pbEnable"参数不是一个指向"BOOL"或"DWORD"(32-位)类型的指针,那么该函数将无法正常运行。
指定的组合键将无法被锁定/使能。
该情况下,函数返回值"FALSE"。
参数
∙uiKey(无符号int)
通过"uiKey"参数您可以定义哪个组合键被锁定/使能。
您可以使用以下内容:
#defineXGINA_ALLOW_SHUTDOWN 1
#defineXGINA_ALLOW_LOGOUT 2
#defineXGINA_ALLOW_CTL_ALT_DEL3
//WindowsKey+E,/WindowsKey+R
#defineXGINA_ALLOW_CTL_ESC 4
#defineXGINA_ALLOW_ALT_ESC 5
#defineXGINA_ALLOW_ALT_TAB 6
注意
锁定/使能组合键CTRL+ESC同时会控制Windows键(如Windows键+E用于调用Windows浏览器或Windows键+R用于执行一个程序)的锁定/使能。
∙pbEnable(BOOL*)
"pbEnable"参数是一个BOOL或DWORD类型变量的地址,包含了参数"uiKey"指定的组合键是否被锁定/使能。
如果值为"TRUE",则组合键被使能,反之被锁定。
∙dwSize(DWORD)
通过"dwSize"参数您可以指定 "pbEnable"指针指向的变量的字节数。
这里提供一个根据当前登录用户操作权限的用于使能/锁定Windows组合键的C动作样例。
WinCC_SetXGinaValue_c.txt(1KB)
#pragmacode("UseAdmin.DLL")
#include"pwrt_api.h"
#pragmacode()
#pragmacode("ALMXGINA.DLL")
BOOLSetXGinaValue(unsignedintuiKey,BOOL*pbEnable,DWORDdwSize);
#pragmacode()
BOOLbEnable;
BOOLbOK;
#defineXGINA_ALLOW_SHUTDOWN1
#defineXGINA_ALLOW_LOGOUT2
#defineXGINA_ALLOW_CTL_ALT_DEL3
#defineXGINA_ALLOW_CTL_ESC4
#defineXGINA_ALLOW_ALT_ESC5
#defineXGINA_ALLOW_ALT_TAB6
bEnable=PWRTCheckPermission(19,TRUE);
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));
printf("#I101:
SetXGinaValue()-bEnable=%dbOK=%d(lock/unlockwindowskeys)\r\n",bEnable,bOK);
下载注意
本例中,用户权限"操作系统"通过使用数字19创建用于使能Windows组合键。
您还可以使用其它的或已存在的权限(如“高级过程控制”,数字6).
以下为在全局脚本“动作中”实例添加的:
intgscAction(void)
{
#pragmaoption(mbcs)
//WINCC:
TAGNAME_SECTION_START
//syntax:
#defineTagNameInAction"DMTagName"
//nextTagID:
1
//WINCC:
TAGNAME_SECTION_END
//WINCC:
PICNAME_SECTION_START
//syntax:
#definePicNameInAction"PictureName"
//nextPicID:
1
//WINCC:
PICNAME_SECTION_END
#pragmacode("UseAdmin.DLL")
#include"pwrt_api.h"
#pragmacode()
#pragmacode("ALMXGINA.DLL")
BOOLSetXGinaValue(unsignedintuiKey,BOOL*pbEnable,DWORDdwSize);
#pragmacode()
BOOLbEnable;
BOOLbOK;
#defineXGINA_ALLOW_SHUTDOWN1
#defineXGINA_ALLOW_LOGOUT2
#defineXGINA_ALLOW_CTL_ALT_DEL3
#defineXGINA_ALLOW_CTL_ESC4
#defineXGINA_ALLOW_ALT_ESC5
#defineXGINA_ALLOW_ALT_TAB6
bEnable=PWRTCheckPermission(19,TRUE);
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));
return0;
}
图.01:
WinCC用户管理中的权限分配
为了在用户登录/取消登陆时来使能/锁定组合键,您可以在全局C动作中使用本例中提供的C脚本。
您可以使
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 如何在运行系统中使用事件触发来使能锁定 Windows 组合键 如何 运行 系统 使用 事件 触发 来使 锁定 组合