在wincc中如何实现定义的时间内无任何操作自动返回某一主画面?
问题补充:
就像手机一样,在设定的时间内没有任何操作自动返回主界面。
手机是怎么做到的?是否可以参考手机的这一功能?有哪位高人知道具体的实现方法吗?
最佳答案
可以如下做:
1.新建个项目函数在全局脚本的项目函数下,保存为GetMouseKeyStatus
程序如下:
BOOL GetMouseKeyStatus()
{
typedef struct tagLASTINPUTINFO {
UINT cbSize;
DWORD dwTime;
} LASTINPUTINFO, * PLASTINPUTINFO;
#pragma code("user32.dll");
BOOL GetLastInputInfo(PLASTINPUTINFO plii);
#pragma code();
BOOL bRet = FALSE;
static long oldtime;
LASTINPUTINFO tim;
tim.cbSize=sizeof(LASTINPUTINFO);
GetLastInputInfo(&tim);
if(oldtime != tim.dwTime)
{
oldtime = tim.dwTime;
bRet = TRUE;
}
return bRet;
}
//在全局脚本中调用此项目函数,判断返回真值(说明鼠标、键盘均没动作),就调用打开主画面的函数OpenPicture("你需要打开的画面名字.PDL");即可。
2.新建个c动作在全局脚本的动作中,名字随便,该全局脚本触发时间定义为你所需时间。动作中的程序如下:
BOOL bRet;
bRet=GetMouseKeyStatus();
if(bRet== FALSE)
{
OpenPicture("你需要打开的画面名字.PDL");
}
return 0;
以上程序经过验证,xpsp3,wincc6.0sp2
提问者对于答案的评价:
经本人实验,该方法非常准确。在此深表感谢和佩服!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc267600.html