WINCC脚本整理

lLeft=GetLeft(\0.Pdl\long int

lTop=GetTop(\0.Pdl\long int

lWidth=GetWidth(\0.Pdl\long int

lHeight=GetHeight(\0.Pdl\long int

if ((lX>=lLeft)&&(lY>=lTop)&&(lX<=lLeft+lWidth)&&(lY<=lTop+lHeight)) { sprintf(szStr,\SetText(\

0.Pdl\char*}//printf(\%d,y:

%d\\r\\n\over:

return 0;}退出WINCC监控时选择退出方式

6 / 11

DMExitWinCCEx (DM_SDMODE_SYSTEM);或者使用动态向导 通过给变量ExitSystem赋不同的数值实现不同的方式 int a;

a=GetTagWord(\返回类型: 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); case 8 :

DMExitWinCCEx (DM_SDMODE_LOGOFF);break;}如何实现用户登陆日志wincc中用c脚本实现?break;#pragma code(\

32.dll\

VOID GetLocalTime(LPSYSTEMTIME lpSystemTime); #pragma code() char* username; char buf[128];

static char preuser[128]; unsigned a,b,c,d,e,f; FILE* fp;

7 / 11

SYSTEMTIME sysTime;

//读取系统时间,并且复制给变量a,b,c,d,e,f

GetLocalTime(&sysTime);a=sysTime.wHour;b=sysTime.wMinute; f=sysTime.wYear; e=sysTime.wMonth;

d=sysTime.wDay;c=sysTime.wSecond;username = GetTagChar(\得到当前用户名称

fp= fopen(\

\\\\wincclog.txt\创建文件

if(strcmp(username, preuser)!=0)//如果当前用户名称和前一个用户名不同 {if((strcmp(username, \//如果当前用户名称不空同时前一个用户名为空 {sprintf(buf, \用户: %s\\t登陆时间是:

\\t %d-%d-%d,%d-%d-%d\\n\else

{if((strcmp(username, \如果当前用户名称为空同时前一个用户名不空

{sprintf(buf,\用户: %s\\t退出时间是:

\\t%d-%d-%d,%d-%d-%d\\n\fputs(buf, fp);}else{sprintf(buf,\用户: %s\\t退出时间是:

8 / 11

\\t%d-%d-%d,%d-%d-%d\\n\fputs(buf, fp); sprintf(buf,\用户: %s\\t登陆时间是:

\\t%d-%d-%d,%d-%d-%d\\n\fputs(buf, fp);}}}strcpy(preuser, username); fclose(fp); return 0; 用户登陆xx:

(包括用户的登陆退出信息,以便查询在什么时间段是哪个用户在使用这个监控软件)

设置语言

英语SetLanguage(0x409); 法语SetLanguage(0x407); 德语SetLanguage(0x40C); 调用计算器

如果在C脚本中仅仅有一句ProgramExecute(\C.exe\

此时不关计算器就切换画面,则计算器都在后台运行。所以在脚本中加入使计算器必须显示在WINDOW的激活层上。

{HWND Hwnd; BOOL bRet;

9 / 11

Hwnd=FindWindow(NULL,\if (!Hwnd){ProgramExecute(\C.exe\

Hwnd=FindWindow(NULL,\if (Hwnd){printf(\

bRet=SetWindowPos(Hwnd,HWND_TOPMOST,300,300,200,200,SWP_NOSIZE); if (!bRet) printf(\修改密码{#pragma code(\

#include \#pragma code() LPCMN_ERROR err;

if (PWGENConnect(\

(PWGENChangePassword(GetTagChar(\agChar(\密码修改成功!\提示

\);}

else{MessageBox(NULL,\密码修改失败!\提示

\);}}else{MessageBox(NULL,\建立连接失败\提示

\);}

PWGENDisconnect(err);}#pragma code( \32.dll\

10 / 11

BOOL SetForegroundWindow(HWND); #pragma code(); HWND handle;

handle=FindWindow(\if (!SetForegroundWindow(handle)); printf(\

11 / 11

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4