1、外包公司要求早上签到,就写了一个自动打卡程序。

2、一直都想写这个程序,可是一直没有思路,知道有个软件公司找我做自动答题程序,于是自动打卡程序才应运而生。未来可以将自动答题程序开源工大家查看。

3、由于公司是企业域认证,所以需要先认证,然后通过webbrower模拟手动操作。

参考资料如下

C#网页表单自动填写实现原理

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版公司的自动签到程序的更多相关文章

  1. WPF自动更新程序

    WPF AutoUpdater 描述: WPF+MVVM实现的自动更新程序 支持更新包文件验证(比较文件MD5码) 支持区分x86与x64程序的更新 支持更新程序的版本号 支持执行更新策略 截图: 使 ...

  2. .Net自动更新程序GeneralUpdate,适用于wpf,winfrom,控制台应用

    什么是GeneralUpdate: GeneralUpdate是基于.net framwork4.5.2开发的一款(c/s应用)自动升级程序. 第一个版本叫Autoupdate(原博客: WPF自动更 ...

  3. Visual Studio 版本转换工具WPF版开源了

    想法的由来 入职一家新公司,领导给了个任务,要编写一个视频监控软件,等我编写调试好,领导满意了以后,这个软件要加入到公司的一个软件系统中去(这个添加工作不用我来做,嘻嘻,看着自己的软件被别人使用,心情 ...

  4. python3+任务计划实现的人人影视网站自动签到

    python3+任务计划实现的人人影视网站自动签到 这是一个自动化程度较高的程序,运行本程序后会从chrome中读取cookies用于登录人人影视签到, 并且会自动添加一个windows 任务计划,这 ...

  5. Python3编写自动签到服务程序

    公司加班的餐补需要登录网站签到领取,有时候会忘记,于是自己用Python写了小程序来自动签到.刚开始只是做了自己用,直接写的黑框程序,后来给同事用,就打包成exe.再后来有人说要写成window服务会 ...

  6. winform自动更新程序实现

    一.问题背景 本地程序在实际项目使用过程中,因为可以操作电脑本地的一些信息,并且对于串口.OPC.并口等数据可以方便的进行收发,虽然现在软件行业看着动不动都是互联网啊啥的,大有Web服务就是高大上的感 ...

  7. c# 基于FTP协议的简易软件自动升级程序

    最近在重写了一个老的产品条码扫描程序,客户端数越有30个,因为经常有更新,C/S维护非常不方便,所以做一个自动更新程序特别有必要. 在网上随便找了找自动更新的方案,大多使用VS的发布/更新功能,不太喜 ...

  8. 使用 GMap.NET 实现添加标注、移动标注功能。(WPF版)

    前言 在WPF嵌入地图,有两种方式: 浏览器方式:控件方式. 1)浏览器方式就是使用浏览器控件WebBrowser,设置好网址就行了.这种方式与地图的交互不太直接,需要懂html.javascript ...

  9. 【MEF】构建一个WPF版的ERP系统

    原文:[MEF]构建一个WPF版的ERP系统 引言 MEF是微软的一个扩展性框架,遵循某种约定将各个部件组合起来.而ERP系统的一大特点是模块化,它们两者的相性很好,用MEF构建一个ERP系统是相当合 ...

随机推荐

  1. 【总结】 Lucas定理

    \(Lucas\)定理: \(C^x_y≡C^{x/p}_{y/p}*C^{x\%p}_{y\%p} ~~(mod~p)\) 证明不会2333 void pre(){ A[0]=A[1]=B[0]=B ...

  2. 自学Aruba2.1-Aruba Web UI --Dashbord面板介绍

    点击返回:自学Aruba之路 自学Aruba2.1-Aruba Web UI --Dashbord面板介绍 本文所有设计的的controller版本信息如下:  Aruba7205 V6.4.4.16 ...

  3. [luogu3834]静态区间第k小【主席树】

    传送门:https://www.luogu.org/problemnew/show/P3834 题目描述 如题,给定N个整数构成的序列,将对于指定的闭区间查询其区间内的第K小值. 分析 很多人都说是用 ...

  4. 洛谷 P1450.硬币购物 解题报告

    P1450.硬币购物 题目描述 硬币购物一共有\(4\)种硬币.面值分别为\(c1,c2,c3,c4\).某人去商店买东西,去了\(tot\)次.每次带\(d_i\)枚\(c_i\)硬币,买\(s_i ...

  5. mathML如何在谷歌浏览器进行展示

    前几天不是做了个word公式的解析吗,就是office插入的公式是个xmlObject对象,读出来就是个String,所以要进行转换才能在网页上展示,其实我对这方面也不是很了解,然后各种百度解决方案, ...

  6. MATLAB:图像的与、或、非、异或逻辑运算(&、|、~、xor)

    图像的与.或.非.异或逻辑运算涉及到了&.|.~和xor符号 close all;%关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量 clc; clear all; I=imrea ...

  7. maveb安装与配置(win10)

    转载:https://www.cnblogs.com/eagle6688/p/7838224.html 看了几篇博客,感觉这篇博客写的含金量最高了,因为我电脑的系统是win10的,所以配置有细微的差别 ...

  8. 过时date.toLocaleString()的解决方法

    System.out.println(new java.util.Date()); 输出:Thu Jan 27 14:43:28 CST 2011 System.out.println(new jav ...

  9. scrapy xpath、正则表达式、css选择器

    scrapy xpath XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言.XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力. 学习 ...

  10. Linux记录-自动删除几天前的日志文件

    #!/bin/sh DDIR=/usr/local/appserver/tomcat_risk/logs/risk_manage find $DDIR -mtime +30 -name "* ...