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