程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> WPF版公司的自動簽到程序,wpf版簽到

WPF版公司的自動簽到程序,wpf版簽到

編輯:C#入門知識

WPF版公司的自動簽到程序,wpf版簽到


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(10));

this.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate()
{
if (DateTime.Now.Hour == 8 && DateTime.Now.Minute > 30)
{
dakaType = DakaType.上班;
mshtml.IHTMLDocument2 document1 = (mshtml.IHTMLDocument2)webBrowser1.Document;
mshtml.IHTMLElement 上班 = (mshtml.IHTMLElement)document1.all.item("amGoUnite", 0);
if (上班 != null)
{
上班.click();
}
}
if (DateTime.Now.Hour == 18)
{
dakaType = DakaType.下班;
mshtml.IHTMLDocument2 document = (mshtml.IHTMLDocument2)webBrowser1.Document;
mshtml.IHTMLElement 下班 = (mshtml.IHTMLElement)document.all.item("pmBackHome", 0);
if (下班 != null)
{
下班.click();
}
}
});
if (dakaType == DakaType.上班)
{
Thread.Sleep(TimeSpan.FromMinutes(1));
}
else if (dakaType == DakaType.下班)
{
Thread.Sleep(TimeSpan.FromMinutes(20));
}
else
{
Thread.Sleep(TimeSpan.FromMinutes(10));
}
}
}
#endregion

代碼講解

mshtml.IHTMLDocument2 document = (mshtml.IHTMLDocument2)webBrowser1.Document;
mshtml.IHTMLElement 下班 = (mshtml.IHTMLElement)document.all.item("pmBackHome", 0);
在頁面上找到下班的按鈕的name為pmBackHome的按鈕,然後點擊
if (下班 != null)
{
下班.click();
}

設置每天的八點半以後上班打卡以及六點以後打卡。

網站截圖

程序啟動界面,需要輸入域賬號和密碼,點擊開始

 

登陸以後的界面

 

點擊【開始】按鈕

 

然後程序就開啟了,把他放到服務器上,大功告成。

下載

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved