C# 批量修改考勤设备时间
自己工作中用到的小程序,每次远行后批量改一次
如下:
其中的zkemkeeper是中控的相关组件,因是系统组件,须要先注册相关文件后才有效
using System;
using System.Collections.Generic;
using System.Text;
using zkemkeeper;
using System.Threading;
using System.Runtime.InteropServices;
using System.IO;
namespace zktime
{
class Program
{
static void Main(string[] args)
{
System.Console.Title = "考勤设备时间批量同步V2";
StreamReader sr = new StreamReader("DeviceIP.txt");
string line;
while ((line = sr.ReadLine()) != null)
{
Program open = new Program();
open.Connect(line);
open.set_DeviceTime(line);
open.disconnectkc(line);
}
if (sr != null) sr.Close();
}
#region 考勤连接与修改
public zkemkeeper.CZKEMClass axCZKEM1 = new zkemkeeper.CZKEMClass();
private bool bIsConnected = false;//布尔值确定设备是否连接
;//设备的序列号。连接设备后,此值将更改。
private void disconnectkc(string ip )
{
if (bIsConnected == true)
{
axCZKEM1.Disconnect();//断开连接
Console.WriteLine("已断开" + ip + "的连接! \r\n");
}
return;
}
private void Connect(string ip)
{
)
{
Console.WriteLine("连接设备" + ip + "错误,错误代码! \r\n");
return;
}
;
bIsConnected = axCZKEM1.Connect_Net(ip, );
if (bIsConnected == true)
{
Console.Write("连接" + ip + "成功 \r\n");
iMachineNumber = ;//实际上,当您使用tcp / ip通信时,这个参数将被忽略,任何整数都是正确的。在这里我们使用1。
axCZKEM1.RegEvent(iMachineNumber, );//在这里,您可以注册要触发的realtime事件(参数65535意味着注册全部)
}
else
{
axCZKEM1.GetLastError(ref idwErrorCode);
Console.Write("连接"+ip+"设备错误,错误代码=" + idwErrorCode.ToString()+"\r\n");
}
}
#region 修改设备时间
private void set_DeviceTime (string ip)
{
if (bIsConnected == false)
{
Console.Write("设备"+ip+"未连接 \r\n");
return;
}
;
int idwYear = Convert.ToInt32(System.DateTime.Now.Year.ToString().Trim());
int idwMonth = Convert.ToInt32(System.DateTime.Now.Month.ToString().Trim());
int idwDay = Convert.ToInt32(System.DateTime.Now.Day.ToString().Trim());
int idwHour = Convert.ToInt32(System.DateTime.Now.Hour.ToString().Trim());
int idwMinute = Convert.ToInt32(System.DateTime.Now.Minute.ToString().Trim());
int idwSecond = Convert.ToInt32(System.DateTime.Now.Second.ToString().Trim());
if (axCZKEM1.SetDeviceTime2(iMachineNumber, idwYear, idwMonth, idwDay, idwHour, idwMinute, idwSecond))
{
axCZKEM1.RefreshData(iMachineNumber);//设备中的数据应该刷新
Console.Write("设置"+ip+"时间"+idwYear.ToString()+"-"+ idwMonth.ToString() + "-" + idwDay.ToString() + " " + idwHour.ToString() + ":" + idwMinute.ToString() + ":" + idwSecond.ToString()+"成功!\r\n");
}
else
{
axCZKEM1.GetLastError(ref idwErrorCode);
Console.Write("操作"+ip+"失败了,错误代码=" + idwErrorCode.ToString()+" \r\n");
}
return;
}
#endregion
#endregion
#region 重写console
static class Console
{
public static string ReadLine()
{
return System.Console.ReadLine();
}
public static ConsoleKeyInfo ReadKey()
{
return System.Console.ReadKey();
}
public static string Title { get
; set; }
public static ConsoleKeyInfo ReadKey(bool intercept)
{
return System.Console.ReadKey(intercept);
}
public static void WriteLine(int value, bool isLog = true)
{
System.Console.WriteLine(value);
if (isLog)
{
WriteFile(value.ToString() + "\r\n");
}
}
public static void WriteLine(string value, bool isLog = true)
{
System.Console.WriteLine(value);
if (isLog)
{
WriteFile(value + "\r\n");
}
}
public static void WriteLine(string format, params object[] arg)
{
System.Console.WriteLine(format, arg);
WriteFile(string.Format(format, arg) + "\r\n");
}
public static void Write(int value, bool isLog = true)
{
System.Console.Write(value);
if (isLog)
{
WriteFile(value.ToString());
}
}
public static void Write(string value, bool isLog = true)
{
System.Console.Write(value);
if (isLog)
{
WriteFile(value);
}
}
public static void Write(string format, params object[] arg)
{
System.Console.Write(format, arg);
WriteFile(string.Format(format, arg));
}
private static bool IsFirst = true;
private static void WriteFile(string value)
{
System.IO.File.AppendAllText(System.IO.Path.Combine(Environment.CurrentDirectory,
"log"+ System.DateTime.Now.Year.ToString()+System.DateTime.Now.Month.ToString()+".txt"), value, Encoding.Default);
}
}
#endregion
}
}
C# 批量修改考勤设备时间的更多相关文章
- Sql批量修改帝国cms文章发布时间(需unix时间,否则会变为1970-01-01)
在迁移网站时,有时我们需要将帝国cms文章发表时间批量修改为当前时间,在帝国cms后台→系统设置→备份与恢复数据→执行sql语句: update phome_ecms_news set newstim ...
- sql批量修改wordpress文章发布时间
有时为了体现wordpress文章的更新程度,会在后台那边重新设置发布时间,有没更简单的方法呢?用sql批量修改wordpress文章发布时间怎么操作呢? UPDATE `wp_posts` SET ...
- node实现文件属性批量修改(时间属性)
前言 在默认情况下,一个文件的创建时间和修改时间是系统自己设定的,我们不能修改该的.但我们有时为了某种特殊需要,为了不让别人一眼看出文件已经给修改了,我们又需要修改文件的创建时间和修改时间.那么如何修 ...
- nodejs 批量修改、删除
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAB4AAAAQhCAIAAABDaAVHAAAgAElEQVR4nOydeXxU5aH359733vd9b/ ...
- ansible非root用户批量修改root密码
前言: 由于线上服务器密码长久没有更新,现领导要求批量更换密码.线上的之前部署过salt,但由于各种因素没有正常使用. 使用自动化工具批量修改的计划搁浅了,后来领导给了个python多线程修改密码脚本 ...
- Unix时间戳转换怎样在Excel批量修改?
最近在操作项目的时候碰到一个Unix时间戳转换的问题."date_time":1393031347这个是什么,你知道吗?如果你对Unix时间戳了解的话一眼就看出来.但我们本着科普的 ...
- 如何将北京时间批量转为Unix时间?用Excel!
前面我们说过Unix时间戳转换怎样在Excel批量修改,有些人就想如果有特殊需求,那能不能批量将北京时间批量转成unix时间呢?能!用Excel就可以实现!跟ytkah一起试试吧. 将unix时间戳转 ...
- Git批量修改提交历史
有些时候我们可能需要批量修改提交历史,当然了,最近一次的提交历史很简单我们可以利用 git commit --amend 来进行最近一次提交的修改,如果你此时想要更新作者提交时间等也可以在amend之 ...
- python批量修改linux主机密码
+++++++++++++++++++++++++++++++++++++++++++标题:python批量修改Linux服务器密码时间:2019年2月24日内容:基于python实现批量修改linu ...
随机推荐
- Swap——hdu 2819
Swap Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- EZOJ #386 最小生成树
分析 先建出最小生成树 之后每次倍增找环即可 代码 #include<bits/stdc++.h> using namespace std; #define int long long s ...
- 牛客提高D4t2 卖羊驼
分析 不难想到dp[i][j]表示前i个数分了j组的最大值 我们发现这个dp状态有决策单调性 g[i][j]表示对于第i个数它的第j位最近出现的位置 每次一定从这些点转移 预处理即可 似乎还可以做到1 ...
- TimeInOfficePresent
w x <- c(52, 30, 10, 8)labels <- c("分析思考", "写代码.调试", "沟通", " ...
- MySQL 基准测试
这是<高性能 MySQL(第三版)>第二章的读书笔记. 基准测试(benchmark)是针对系统的压力测试,用于掌握系统行为或重新系统的某个状态.sysbench 是常用的 MySQL 基 ...
- nmon分析工具的使用
linux监控服务器资源 1.下载nmon_linux_more_14g.tar.gz,下载完成解压之后,我们先命令行看看自己Linux的版本,和nmon支持一下Linux发行版本 2.mkdir / ...
- sql 为什么要用where 1=1?
之前一直不太明白,sql语句里为什么要写where 1=1 提升某种执行效率? 其实,1=1 是永恒成立的,意思无条件的,也就是说在SQL语句中有没有这个1=1都可以. 这个1=1常用于应用程序根据用 ...
- C++ STL map容器值为指针时怎么释放内存
最近在使用STL中map时,遇到了一个问题,就是当map中值为指针对象时怎么释放内存? // 站点与TCP连接映射表 (key为ip_port_stationCode, value为 clientSo ...
- Python科学计算三维可视化(整理完结)
中国MOOC<Pyhton计算计算三维可视化>总结 课程url:here ,教师:黄天宇,嵩天 下文的图片和问题,答案都是从eclipse和上完课后总结的,转载请声明. Python数据三 ...
- 04 - Jmeter4.x聚合报告,测试报告以及测试报告用法于解析
聚合报告 添加方式 Thread Group → add → Listener → Aggregate Report 内容解析 lable: 指代当前Samples ...