| 原创--用户登陆日志(wincc中用c脚本实现) |
|
柳树成林 发表于 2005-11-3 9:31:00 | 用户登陆日志:(包括用户的登陆退出信息,以便查询在什么时间段是哪个用户在使用这个监控软件)
#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,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, "用户:%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;}
|
| 阅读全文() | 回复(5) | 引用通告() | 编辑 |
| Re:原创--用户登陆日志(wincc中用c脚本实现) |
|
yjy14发表评论于2006-5-12 15:38:00 | 如果说这是原创的好象不合理啊!
哎.........
|
| 个人主页 | 引用 | 返回 | 删除 |
| Re:原创--用户登陆日志(wincc中用c脚本实现) |
|
alin_99发表评论于2005-12-8 10:07:00 | 这个文件保存在c:\\wincclog.txt中,
你可以在wincc中作一个按钮,脚本用programexecute()函数做个脚本来看这个文件。
|
| 个人主页 | 引用 | 返回 | 删除 |
| Re:原创--用户登陆日志(wincc中用c脚本实现) |
|
lucky发表评论于2005-11-9 16:42:00 | 怎么能看到查询后的信息呢?这个脚本是在全局脚本里运行吗?怎样触发?
|
| 个人主页 | 引用 | 返回 | 删除 |
| Re:原创--用户登陆日志(wincc中用c脚本实现) |
|
alin_99发表评论于2005-11-5 9:14:00 | 希望对大家有用,这个东西我搞了一个上午才搞好的, 我的5.0不支持GetLocalTimeString(),所以比较麻烦,改造起来很费劲
|
| 个人主页 | 引用 | 返回 | 删除 |
| Re:原创--用户登陆日志(wincc中用c脚本实现) |
|
wildgoose12(游客)发表评论于2005-11-5 8:26:00 | 不错,谢谢
|
| 个人主页 | 引用 | 返回 | 删除 | 发表评论:
|
|