回复:通过C脚本实现WINCC 用户登录退出记录

博雅

  • 帖子

    1427
  • 精华

    6
  • 被关注

    24

论坛等级:侠圣

注册时间:2005-04-01

普通 普通 如何晋级?

发布于 2011-03-13 11:39:42

1楼

找到了,贴出来大家一起学习
#i nclude "apdefap.h"



int gscAction( void )

{

#pragma code("kernel32.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;

SYSTEMTIME sysTime;



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

GetLocalTime(&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, "用户:%s\t登陆时间是:\t %d-%d-%d,%d-%d-%d\n", username,a,b,c,d,e,f);

fputs(buf, fp);

}

else

{

if((strcmp(username, "") == 0)&&(strcmp(preuser, "") != 0)) //如果当前用户名称为空同时前一个用户名不空



{

sprintf(buf, "用户:%s\t退出时间是:\t %d-%d-%d,%d-%d-%d\n", preuser,a,b,c,d,e,f);

fputs(buf, fp);

}



else

{

sprintf(buf, "用户:%s\t退出时间是:\t %d-%d-%d,%d-%d-%d\n", preuser,a,b,c,d,e,f);

fputs(buf, fp);

sprintf(buf, "用户:%s\t登陆时间是:\t %d-%d-%d,%d-%d-%d\n", username,a,b,c,d,e,f);

fputs(buf, fp);

}

}

}



strcpy(preuser, username);

fclose(fp);



return 0;

}
年经就是一种态度
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32564条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。