您现在所在的是:

西门子SIEMENS

回帖:2个,阅读:1580 [上一页] [1] [下一页]
838
bearded
文章数:3
年度积分:50
历史总积分:838
注册时间:2005/2/3
发站内信
发表于:2005/6/3 11:15:00
#0楼
BOOL GetMousePoint()

{

#pragram code("user32.dll");

BOOL GetCursorpos(LPPOINT lppoint);

#pragma code();

POINT point;

static int x, y;

GetCursorPos(&point);

if(x!=point.x||y!=point.y)

{

x=point.x;

y=point.y;

return FALSE;

}

else

return TRUE;

}

*******************************************

此功能调用了WINDOWS的API函数获取鼠标(屏幕)位置。

例如:要求在鼠标10秒静止不动,将从任意画面返回到主画面A。

可在全局脚本中调用GetMousePoint();

如果返回值为真,OpenPicture("A画面");即可。

全局脚本触发时间定义为鼠标秒静止不动的时间,在此为10秒。
#include "user.h" //自定义的头文件,包含LASTINPUTINFO结构定义;

#pragma "user32.dll";

BOOL GetLastInputInfo(PLASTINPUTINFO plii);//2000系统专有。

#pragma code();

BOOL GetMouseKeyStaticTime()

{

static long oldtime;

LASTINPUTINFO tim;

tim.cbSize=sizeof(LASTINPUTINFO);

GetLastInputInfo(&tim);

if(oldtime==tim.dwTime)

return TRUE;

else

{

oldtime=tim.dwTime;

return FALSE;

}

}

////////////////////////////////////////////////////////

使用方法:

在全局脚本中调用此功能函数,判断返回真值(说明鼠标、键盘均没动作),

就调用打开主画面的函数OpenPicture("A画面");即可。

全局脚本触发时间定义为所需时间。

*********************************************************

***********************************************************

以上两种功能函数均在WINCC5.1 SP2,WINDOWS2000环境调试成功。

因为调用的是操作系统函数,所以相信在WINCC其他版本也能够实现。



37243
cvlsam 版主
文章数:12401
年度积分:1595
历史总积分:37243
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2005/6/14 15:15:00
#1楼
的确是好贴,却没有人回帖
1350
hsdc
文章数:211
年度积分:50
历史总积分:1350
注册时间:2004/2/21
发站内信
发表于:2005/6/14 18:49:00
#2楼
好东西,收藏了。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004