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 ...
随机推荐
- 【Java】Java调用第三方接口
Get请求与Http请求 https://www.w3school.com.cn/tags/html_ref_httpmethods.asp HttpClient HTTP 协议可能是现在 Inter ...
- MySQL备份之XtraBackup工具使用
数据库的完整备份 [root@vhost1 ~]# innobackupex --defaults-file=/mysqldata/3306/my.cnf --user=root --passw ...
- pycharm项目代码上传远程centos服务器
pycharm项目代码上传远程centos服务器 在工作中,我们经常会遇到如下情况,在windows系统下的pycharm中开发项目,但是需要在linux服务器上部署和运行我们的项目.那么我们的项目是 ...
- Recurrent Neural Network(1):Architecture
Recurrent Neural Network是在单个神经元上,除了输入与输出外,添加了一条Recurrent回路.也就是说,节点当前的状态将会影响其未来的状态.下式可以表征此关系: st= f(s ...
- < python PIL - 批量图像处理 - RGB图像生成灰度图像 >
< python PIL - 批量图像处理 - RGB图像生成灰度图像 > 直接用python自带的PIL图像库,将一个文件夹下所有jpg/png的RGB图像转换成灰度/黑白图像 from ...
- Eclipse + pydev插件
在Eclipse中安装pydev插件 启动Eclipse, 点击Help->Install New Software... 在弹出的对话框中,点Add 按钮. Name中填:Pydev, ...
- jQuery基础--选择器
2. 选择器 2.1. 什么是jQuery选择器 jQuery选择器是jQuery为我们提供的一组方法,让我们更加方便的获取到页面中的元素.注意:jQuery选择器返回的是jQuery对象. jQue ...
- 【报错】An error happened during template parsing (template: "class path resource [templates/adminManageCourse.html]")
页面显示: Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing t ...
- Pikachu漏洞练习平台实验——文件包含(File Inclusion)(六)
1.概述 1.1简介 在 Web 后台开发中,程序员往往为了提高效率以及让代码看起来更加简洁,会使用 “包含” 函数功能.比如把一系列功能函数都写进 function.php 中,之后当某个文件需要调 ...
- python网络编程中互斥锁与进程之间的通信
一.互斥锁 进程之间数据隔离,但是共享一套文件系统,因而可以通过文件来实现进程直接的通信,但问题是必须自己加锁处理. 注意:加锁的目的是为了保证多个进程修改同一块数据时,同一时间只能有一个修改,即串行 ...