




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
切换按钮001 SetTagBit(TE_BOOL,!GetTagBit(TE_BOOL);002 BOOL A A=GetTagBit(TE_BOOL); if(A) SetTagBit(TE_BOOL,0); Else SetTagBit(TE_BOOL,1);003 SetTagBit(TE_BOOL ,1-GetTagBit(TE_BOOL ); I O 域处的格式化输入输出在I/O域的输出值事件处的动作 Float F_TAG; F_TAG =GetTagFloat(TE_FLOAT); return(F_TAG /100);WINCC运行画面最小化 HWND WinCCHwnd; WinCCHwnd=FindWindow(PDLRTisAliveAndWaitsForYou,NULL); CloseWindow(WinCCHwnd);WINDOWS中提供的标准对话框 BOOL bool1;HWND Hwnd;int iRet;Hwnd = FindWindow(NULL,WinCC-运行系统 - );if (!Hwnd) Hwnd = FindWindow(NULL,WinCC-运行系统 - );if (!Hwnd) printf(rnGetWinCC Handle Failed!);iRet=MessageBox(Hwnd,确认合闸,确认对话框,MB_YESNOCANCEL|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);switch (iRet)case IDYES: printf(user do YESrn);SetTagBit(TE_QUEST,1);break;case IDNO: printf(user do NOrn);SetTagBit(TE_QUEST,0);break;case IDCANCEL: printf(user do CANCELrn);break;本画框的功能是 点击按钮的时候弹出windows询问对话框 其中“确认合闸”为对话内容,对话框的名称为 “确认对话框”用户不同显示不同的按钮你可以在用户管理器给每个用户不同的权限,使他们对按钮有不同的操作权,这是最简便的。但是如果一定要根据用户不同显示不同的按钮就要用C脚本了下面这段代码可以加在有两个按钮的画面的对象属性-事件-画面对象-其他-打开画面,三个用户名是user1,user2,user3,按钮名称是 按钮1,按钮2,你可以自行修改,这里假设已经进行过用户登录的操作,当打开有这两个按钮的画面时执行下列脚本判断用户并显示相应的按钮if(strcmp(GetTagChar(CurrentUser),user1)elseSetVisible(lpszPictureName,按钮1,TRUE);SetVisible(lpszPictureName,按纽2,FALSE);if(strcmp(GetTagChar(CurrentUser),user2)elseSetVisible(lpszPictureName,按钮1,FALSE);SetVisible(lpszPictureName,按钮2,TRUE);if(strcmp(GetTagChar(CurrentUser),user3)elseSetVisible(lpszPictureName,按钮1,TRUE);SetVisible(lpszPictureName,按钮2,TRUE);strcmp是比较字符串的语句,比较文本变量只能用它,帮助里没有的,用它比较读取到的用户名GetTagChar(CurrentUser)和三个用户名userX,你把这段语句加到一个按钮的鼠标动作里,看点击按钮会不会两个按钮现实和隐藏。 登录登出对话框#pragmacode(useadmin.dll)#includePWRT_api.h#pragmacode()PWRTLogin(c);PWRTLogin参数必须是CHAR字符。它指定了显示对话框的监视器。如果只使用一个监视器,那么保留默认参数“c”或者指定“1”。#pragmacode(useadmin.dll)#includePWRT_api.h#pragmacode()PWRTLogout();PWRTLogin参数必须是CHAR字符。它指定了显示对话框的监视器。如果只使用一个监视器,那么保留默认参数“c”或者指定“1”。WinCC如何实现鼠标OnMouseOVer事件用WINDOWAPI函数GetCusorPos获取当前鼠标位置,用GetWindowRect函数获取窗口位置,两值相减得鼠标在WINCC frame上的相对位置。用全局脚本(设定为1s定时刷新),然后获取要OnMouseOver事件的物体的位置,并与鼠标位置相比较,如一致则触发自己 定义的动作。i nclude apdefap.hint gscAction( void ) #pragma code(user32.dll); BOOL GetCusorPos(POINT lpPoint); /获取鼠标的位置(绝对位置-对应屏幕分辨率) BOOL GetWindowRect(HWND hwnd,LPRECT lpRect); /获取窗体 位置 #pragma code(); POINT pPos; RECT rRec; HWND hwnd; BOOL bRet,bRet2; long lLeft,lTop,lWidth,lHeight; long lX,lY; char szStr100;hwnd=FindWindow(NULL,WinCC-Runtime - ); /如语言为中文应为WinCC 运行系统-if (hwnd=0) printf(rnError! WinCc Handle is %d,hwnd);goto over;bRet=GetCursorPos(&pPos); if (bRet=0) goto over;bRet2=GetWindowRect(hwnd,&rRec); if (bRet2=0) goto over; lX=pPos.x-rRec.left; /鼠标 对置 lY=pPos.y-rRec.top; /鼠标 位置 /如果为非全屏模式,需将上述数值中的高height判断减去标题栏的宽度 /printf(The Current Cusor Pos is x:%d,y:%drn,pPos.x,pPos.y); /printf(The Cusor Pos in Window is x:%d,y:%drn,pPos.x-lLeft2,pPos.y-lTop2); lLeft=GetLeft(NewPdl0.Pdl,Text1); /Return - Type :long int lTop=GetTop(NewPdl0.Pdl,Text1); /Return - Type :long int lWidth=GetWidth(NewPdl0.Pdl,Text1); /Return - Type :long int lHeight=GetHeight(NewPdl0.Pdl,Text1); /Return - Type :long intif (lX=lLeft)&(lY=lTop)&(lX=lLeft+lWidth)&(lY=lTop+lHeight) sprintf(szStr,%d,%d,lX,lY); SetText(NewPdl0.Pdl,Text1,szStr); /Return - Type :char* /printf(The Text1 Pos is x:%d,y:%drn,lLeft2,lTop-lTop2); over: return 0; 退出WINCC监控时选择退出方式 DMExitWinCCEx (DM_SDMODE_SYSTEM);或者使用动态向导通过给变量ExitSystem赋不同的数值实现不同的方式int a;a=GetTagWord(ExitSystem);/返回类型:WORD switch(a)case 1 : MExitWinCCEx (DM_SDMODE_REBOOT); break;case 2 : DMExitWinCCEx (DM_SDMODE_SYSTEM); break;case 4 : ExitWinCC();break; /DMExitWinCCEx (DM_SDMODE_WINCC); break; case 8 : DMExitWinCCEx (DM_SDMODE_LOGOFF); break;如何实现用户登陆日志wincc中用c脚本实现?#pragma code(kernel32.dll)VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);#pragma code()char* username;char buf128;static char preuser128;unsigned a,b,c,d,e,f;FILE* fp;SYSTEMTIME sysTime;/读取系统时间,并且复制给变量a,b,c,d,e,fGetLocalTime(&sysTime); a=sysTime.wHour; b=sysTime.wMinute; c=sysTime.wSecond; f=sysTime.wYear; e=sysTime.wMonth; d=sysTime.wDay;username = GetTagChar(CurrentUser); /得到当前用户名称fp= fopen(c:wincclog.txt, a+); /创建文件if(strcmp(username, preuser)!=0) /如果当前用户名称和前一个用户名不同 if(strcmp(username, ) != 0)&(strcmp(preuser, ) = 0) /如果当前用户名称不空同时前一个用户名为空 sprintf(buf, 用户:%st登陆时间是:t %d-%d-%d,%d-%d-%dn, username,a,b,c,d,e,f); fputs(buf, fp); else if(strcmp(username, ) = 0)&(strcmp(preuser, ) != 0) /如果当前用户名称为空同时前一个用户名不空 sprintf(buf, 用户:%st退出时间是:t %d-%d-%d,%d-%d-%dn, preuser,a,b,c,d,e,f); fputs(buf, fp); else sprintf(buf, 用户:%st退出时间是:t %d-%d-%d,%d-%d-%dn, preuser,a,b,c,d,e,f); fputs(buf, fp); sprintf(buf, 用户:%st登陆时间是:t %d-%d-%d,%d-%d-%dn, username,a,b,c,d,e,f); fputs(buf, fp); strcpy(preuser, username);fclose(fp);return 0;用户登陆日志:(包括用户的登陆退出信息,以便查询在什么时间段是哪个用户在使用这个监控软件)设置语言英语SetLanguage(0x409);法语SetLanguage(0x407);德语SetLanguage(0x40C);调用计算器如果在C脚本中仅仅有一句ProgramExecute(CALC.exe)此时不关计算器就切换画面,则计算器都在后台运行。所以在脚本中加入使计算器必须显示在WINDOW的激活层上。 HWND Hwnd; BOOL bRet;Hwnd=FindWindow(NULL,Calculator); if (!Hwnd)ProgramExecute(CALC.exe);Hwnd=FindWindow(NULL,Calculator);if (Hwnd)printf(rn%d,Hwnd);bRet=SetWindowPos(Hwnd,HWND_TOPMOST,300,300,200,200,SWP_NOSIZE);if (!bRet) printf(rnSetWindowPos Error!); 修改密码#pragma code(UseGen.dll)#include USEGENAP.H#pragma code()LPCMN_ERROR err;if (PWGENConnect(CC_ass_04-09-21_16:35:22,err) )if (PWGENChangePassword(GetTagChar(user),GetTagChar(oldpassword),GetTagChar(password),err)MessageBox(NULL,密码修改成功!,提示,MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);elseMessageBox(NULL,密码修改失败!,提示,MB_OK|MB_ICONEXCLAMATION|MB_SETFOREGROUND|MB_SYSTEMMODAL);elseMessageBox(NULL,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 传统食品工业化生产2025年智能工厂改造项目进度控制报告
- 社渚镇民宅转让合同范本
- 灌溉项目合同协议书范本
- 碎石机械销售合同协议书
- 机动车销售服务合同范本
- 汽修厂多人合伙协议合同
- 湖南文理学院合作协议书
- 电动车出租合作合同范本
- 烘焙店工作合同范本模板
- 物业创意园租房合同范本
- 01-低血糖症科普知识讲座
- 2025年新疆维吾尔自治区生产建设兵团中考语文真题(解析版)
- (高清版)DB11∕T 509-2025 房屋建筑修缮工程定案和施工质量验收规程
- 2025年广西中考地理试题(含答案)
- 化工自动化仪表 选择题805-1556
- GB/T 4604-2006滚动轴承径向游隙
- GB/T 12008.2-2010塑料聚醚多元醇第2部分:规格
- 既有住宅适老化改造项目可行性研究报告书
- 公司网银盾交接单
- 施工人员安全教育培训课件
- 建筑施工项目成本费用分析手册
评论
0/150
提交评论