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

在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

相关推荐

  • 以太网通讯速度超慢

    现在有上位wincc6.2和s7-315-2DP的CP443-1通讯,通讯成功,但通讯速度超慢,另外还有台mp377屏,通过DP通讯连接PLC wincc变量3000多个…

    SIMATIC WinCC 2019年6月11日
  • WINcc画面怎么才能实现自动识别系统分辨率

    现象:在笔记本上把项目做出来了,到台式机上却还要因为分辨率的问题,修改图片控件大小..问题:有没有什么方法可以让项目自动识别分辨率调整控件大小,谢谢 最佳答案 你做好的项目,如果画…

    SIMATIC WinCC 2019年6月11日
  • 关于HMI的数据存储问题

    各位前辈好,本人想寻求一下HMI(tp1500)的存储功能,想在屏幕上让其显示速度的实时变化值,并将测得的值存储到屏幕上,方便下次查看数据,自己试了一下发现只能测得实时数据,并不能…

    2021年7月5日
  • WINCC 中如何将系统日期和时间写入数据库

    需要记录设备的开机,停机时间,如何触发,然后将WINCC的系统日期和时间写入到数据保存起来呢 问题补充:不是需要WINCC和PLC的时间同步,而是我就想知道怎么可以读取WINCC(…

    SIMATIC WinCC 2018年12月5日
  • WINCC项目下载,PC站组态

    我是PLC系统中一个CP343-1 LEAN通过TCP/IP协议连接两台两台WINCC的电脑用普通网卡,现在想全部集成在STEP7中,一台电脑作为ES/QS,另外一台作为…

    SIMATIC WinCC 2017年6月29日
  • OPC条目管理器 看不到变量的数据类型

    如题,全显示未知。   我是用两台都装有6.2的电脑通过OPC对联的,一台做server,一台做client。   上午…

    SIMATIC WinCC 2019年6月11日
  • 谁用过WinCC中的Gadgets水流控件啊?

    现在的问题是一旦一个画面中用的这个控件过多(大概100个以上)就有很大的几率出现一段时间后画面破碎的现象,画面中的物件都无法正常显示,比如按钮错位,无法正常点击等等,总之就是不正常…

    SIMATIC WinCC 2018年12月14日
  • winCC时不时断线黑屏一下的问题

    OS、ES和server都连在交换机上,交换机通过工业以太网连接417的CPU,唯独ES上的WinCC时不时断线黑屏一下,然后马上又恢复正常,这个一般是怎么引起的?!(ES的网络连…

    SIMATIC WinCC 2017年12月7日
  • 按钮语言设置

    做了很多的按钮,比如用户登录,系统设置,等等,想用一个语言切换的按钮,把这些全部都换成英文显示!怎么做,我在文本库里也写出了相对应的英文了,为什么一点语言切换所有的文本都变成了问号…

    SIMATIC WinCC 2019年6月11日
  • HMI账户密码时效问题

    HMI设置的账户登录后,可以设定它多少时间失效吗?哪里可以设置这一点? 最佳答案 可以,自动注销时间,默认5分钟,在用户管理里面设置 提问者对于答案的评价:没注意到呢,看到了,感谢…

    SIMATIC WinCC 2021年7月5日