在WINCC中如何捕捉鼠标的位置 点击:2594 | 回复:4



YLX

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 11回
  • 年度积分:0
  • 历史总积分:72
  • 注册:2002年8月16日
发表于:2005-08-17 16:48:00
楼主



如火

  • 精华:172帖
  • 求助:0帖
  • 帖子:803帖 | 5249回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2005-08-17 17:02:00
1楼
好像不行,笔者没有发现这个函数,需要调用windows库才可以。

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2005-08-18 09:06:00
2楼
捕捉鼠标、键盘实现画面返回 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其他版本也能够实现。

YLX

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 11回
  • 年度积分:0
  • 历史总积分:72
  • 注册:2002年8月16日
发表于:2005-08-18 09:38:00
3楼
我想知道鼠标的具体位置,即X和Y的值,该怎么做?

如火

  • 精华:172帖
  • 求助:0帖
  • 帖子:803帖 | 5249回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2005-08-18 14:42:00
4楼
point.x和 point.y不就是您所要知道的鼠标的具体位置吗?

热门招聘
相关主题

官方公众号

智造工程师