zoukankan      html  css  js  c++  java
  • WinCC中通过脚本禁用或启用Windows快捷键

    有些项目要求WinCC全屏运行,并禁止通过操作系统快捷键切换到桌面,这时只需要在WinCC的计算机属性中勾选“禁用用于进行操作系统访问的快捷键”。此后当WinCC运行时,按Win键或Ctrl+Alt+Delete等快捷键都不会起作用。

    然而某些情况下要求管理员在不关闭WinCC进入到桌面进行系统维护,可以通过WinCC中的C脚本启用操作系统快捷键,当完成维护后再用脚本禁用快捷键。

    禁用/启用操作系统快捷键通过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指针所指向的变量的字节数。

    禁用快捷键的脚本如下,将以下代码写在WinCC的全局C脚本的项目模块中,在画面中调用managekeys()函数,给函数传递TRUE则使能组合键,传递FALSE则禁用组合键。

    //传递TRUE则启动按键,传递FALSE禁用按键
    int managekeys( BOOL bEnable )
    {
        #pragma option(mbcs)
    
        #pragma code ("ALMXGINA.DLL")
        BOOL SetXGinaValue(unsigned int uiKey, BOOL *pbEnable, DWORD dwSize);
        #pragma code()
    
        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; 
    }
    

      

  • 相关阅读:
    智器SmartQ T7实体店试用体验
    BI笔记之SSAS库Process的几种方案
    PowerTip of the Day from powershell.com上周汇总(八)
    PowerTip of the Day2010071420100716 summary
    PowerTip of the Day from powershell.com上周汇总(十)
    PowerTip of the Day from powershell.com上周汇总(六)
    重新整理Cellset转Datatable
    自动加密web.config配置节批处理
    与DotNet数据对象结合的自定义数据对象设计 (二) 数据集合与DataTable
    在VS2003中以ClassLibrary工程的方式管理Web工程.
  • 原文地址:https://www.cnblogs.com/yada/p/11635441.html
Copyright © 2011-2022 走看看