WPF版公司的自动签到程序
1、外包公司要求早上签到,就写了一个自动打卡程序。
2、一直都想写这个程序,可是一直没有思路,知道有个软件公司找我做自动答题程序,于是自动打卡程序才应运而生。未来可以将自动答题程序开源工大家查看。
3、由于公司是企业域认证,所以需要先认证,然后通过webbrower模拟手动操作。
参考资料如下
4、给webBrowser设置网站地址
webBrowser1.Source = new Uri(txtUrl.Text);
然后开启监控线程
Thread t1 = new Thread(new ThreadStart(Start)) { IsBackground = true };
t1.Start();
start的实现如下
#region 线程入口方法
/// <summary>
/// 线程入口方法
/// </summary>
public void Start()
{
this.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate() { btnStart.IsEnabled = false; lblStart.Content = "运行中......"; });
while (true)
{
DakaType dakaType = DakaType.未知; this.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate() { webBrowser1.Source = new Uri(txtUrl.Text); }); Thread.Sleep(TimeSpan.FromSeconds()); this.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate()
{
if (DateTime.Now.Hour == && DateTime.Now.Minute > )
{
dakaType = DakaType.上班;
mshtml.IHTMLDocument2 document1 = (mshtml.IHTMLDocument2)webBrowser1.Document;
mshtml.IHTMLElement 上班 = (mshtml.IHTMLElement)document1.all.item("amGoUnite", );
if (上班 != null)
{
上班.click();
}
}
if (DateTime.Now.Hour == )
{
dakaType = DakaType.下班;
mshtml.IHTMLDocument2 document = (mshtml.IHTMLDocument2)webBrowser1.Document;
mshtml.IHTMLElement 下班 = (mshtml.IHTMLElement)document.all.item("pmBackHome", );
if (下班 != null)
{
下班.click();
}
}
});
if (dakaType == DakaType.上班)
{
Thread.Sleep(TimeSpan.FromMinutes());
}
else if (dakaType == DakaType.下班)
{
Thread.Sleep(TimeSpan.FromMinutes());
}
else
{
Thread.Sleep(TimeSpan.FromMinutes());
}
}
}
#endregion
代码讲解
mshtml.IHTMLDocument2 document = (mshtml.IHTMLDocument2)webBrowser1.Document;
mshtml.IHTMLElement 下班 = (mshtml.IHTMLElement)document.all.item("pmBackHome", 0);
在页面上找到下班的按钮的name为pmBackHome的按钮,然后点击
if (下班 != null)
{
下班.click();
}
设置每天的八点半以后上班打卡以及六点以后打卡。
网站截图
程序启动界面,需要输入域账号和密码,点击开始

登陆以后的界面

点击【开始】按钮

然后程序就开启了,把他放到服务器上,大功告成。
WPF版公司的自动签到程序的更多相关文章
- WPF自动更新程序
WPF AutoUpdater 描述: WPF+MVVM实现的自动更新程序 支持更新包文件验证(比较文件MD5码) 支持区分x86与x64程序的更新 支持更新程序的版本号 支持执行更新策略 截图: 使 ...
- .Net自动更新程序GeneralUpdate,适用于wpf,winfrom,控制台应用
什么是GeneralUpdate: GeneralUpdate是基于.net framwork4.5.2开发的一款(c/s应用)自动升级程序. 第一个版本叫Autoupdate(原博客: WPF自动更 ...
- Visual Studio 版本转换工具WPF版开源了
想法的由来 入职一家新公司,领导给了个任务,要编写一个视频监控软件,等我编写调试好,领导满意了以后,这个软件要加入到公司的一个软件系统中去(这个添加工作不用我来做,嘻嘻,看着自己的软件被别人使用,心情 ...
- python3+任务计划实现的人人影视网站自动签到
python3+任务计划实现的人人影视网站自动签到 这是一个自动化程度较高的程序,运行本程序后会从chrome中读取cookies用于登录人人影视签到, 并且会自动添加一个windows 任务计划,这 ...
- Python3编写自动签到服务程序
公司加班的餐补需要登录网站签到领取,有时候会忘记,于是自己用Python写了小程序来自动签到.刚开始只是做了自己用,直接写的黑框程序,后来给同事用,就打包成exe.再后来有人说要写成window服务会 ...
- winform自动更新程序实现
一.问题背景 本地程序在实际项目使用过程中,因为可以操作电脑本地的一些信息,并且对于串口.OPC.并口等数据可以方便的进行收发,虽然现在软件行业看着动不动都是互联网啊啥的,大有Web服务就是高大上的感 ...
- c# 基于FTP协议的简易软件自动升级程序
最近在重写了一个老的产品条码扫描程序,客户端数越有30个,因为经常有更新,C/S维护非常不方便,所以做一个自动更新程序特别有必要. 在网上随便找了找自动更新的方案,大多使用VS的发布/更新功能,不太喜 ...
- 使用 GMap.NET 实现添加标注、移动标注功能。(WPF版)
前言 在WPF嵌入地图,有两种方式: 浏览器方式:控件方式. 1)浏览器方式就是使用浏览器控件WebBrowser,设置好网址就行了.这种方式与地图的交互不太直接,需要懂html.javascript ...
- 【MEF】构建一个WPF版的ERP系统
原文:[MEF]构建一个WPF版的ERP系统 引言 MEF是微软的一个扩展性框架,遵循某种约定将各个部件组合起来.而ERP系统的一大特点是模块化,它们两者的相性很好,用MEF构建一个ERP系统是相当合 ...
随机推荐
- 自学Linux Shell3.3-列表命令ls
点击返回 自学Linux命令行与Shell脚本之路 3.3-列表命令ls ls命令用于显示文件目录列表,和Windows系统下DOS命令dir类似.当执行ls命令时,默认显示的只有非隐藏文件的文件名. ...
- [hgoi#2019/3/10]赛后总结
关于本次hg模拟赛,题目来源于CF1110. t1-无意义运算符(meaning) 题目描述 最大公约数和位运算之间有共同点吗?是时候来研究一下了. 给定一个正整数a,请找到一个闭区间[1,a-1] ...
- Java中线程池的实现原理-求职必备
jdk1.5引入Executor线程池框架,通过它把任务的提交和执行进行解耦,只需要定义好任务,然后提交给线程池,而不用关心该任务是如何执行.被哪个线程执行,以及什么时候执行. 初始化线程池(4种) ...
- C++初始化列表(good)
本文转载自http://www.cnblogs.com/graphics/archive/2010/07/04/1770900.html 感谢作者分享 何谓初始化列表 与其他函数不同,构造函数除了有名 ...
- (Catalan数 大数) Game of Connections poj2084
Language: Game of Connections Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 8837 Accept ...
- (string 高精度) Lovekey hdu 2100
Lovekey Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- scatter
一.matplotlib.pyplot.scatter用来画散点图 import matplotlib.pyplot as plt import matplotlib as mpl mpl.rcPar ...
- 面向对象【day07】:新式类和经典类(八)
本节内容 1.概述 2.类的多继承 3.经典类VS新式类 4.总结 一.概述 在python还支持多继承,但是一般我们很少用,有些语言干脆就不支持多继承,有多继承,就会带来两个概念,经典类和新式类,下 ...
- Hbase记录-HBase增删改查
HBase创建数据 本章将介绍如何在HBase表中创建的数据.要在HBase表中创建的数据,可以下面的命令和方法: put 命令, add() - Put类的方法 put() - HTable 类 ...
- HDU - 5340 Three Palindromes(manacher算法)
http://acm.hdu.edu.cn/showproblem.php?pid=5340 题意 判断是否能将字符串S分成三段非空回文串 分析 manacher预处理出前缀和后缀回文的位置, 枚举第 ...