运行了一段程序造成 无法正常从开始菜单中关机 重启 注销

在WINCC中用C语言写了一段代码以一分钟周期运行之后,点击开始中的关机...出现对话框后再点击关机 重启 注销都没有反应.关闭了这段代码的运行,问题依旧出现.

 

 

 代码如下 

 #pragma code ("UseAdmin.DLL")

 #include "pwrt_api.h"

 #pragma code()

 #pragma code ("ALMXGINA.DLL")

 BOOL SetXGinaValue(unsigned int uiKey, BOOL *pbEnable, DWORD dwSize);

 #pragma code()

 

 BOOL  bEnable;

 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

 

 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=%d  bOK=%d   (lock/unlock windows keys)\r\n", bEnable, bOK);

 

 

 请教高手是何原因引起,如何补救. 
 

最佳答案

可能是由于脚本中将XGINA_ALLOW_SHUTDOWN、XGINA_ALLOW_LOGOUT 、XGINA_ALLOW_CTL_ALT_DEL 等锁住后,造成无法正常关机、注销等系统操作。

 此代码可以改为根据@CurrentUser变化而执行,当有权限的用户登陆后 bEnable=TRUE;将热键解锁。或者在退出WinCC按钮处调用一次进行解锁。

提问者对于答案的评价:
感谢dcount107 的解答,问题已得到解决

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc275534.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午11:40
下一篇 2019年6月11日 上午11:40

相关推荐