ตอนที่ 6 : การทำ Windows Service ตั้งเวลา Schedule เปิดและรันโปรแกรมอื่นๆ (VB.Net,C#) |
การทำ Windows Service ตั้งเวลา Schedule เปิดและรันโปรแกรมอื่นๆ (VB.Net,C#) ในตัวอย่างนี้จะเป็นวิธีการเขียน Windows Service ทำการเรียกหรือเปิดโปรแกรมอื่นๆ หรือ Start Process/Execute ให้ทำงาน สามารถเปิดไฟล์โปรแกรมอื่นๆ ได้เช่น exe, bat แต่การทำงานของมันจะเป็นแบบ Background Process คือจะไม่แสดงหน้าจอ Interface ให้เห็น ส่วนวิธีการเปิดโปรแกรมนั้น สามารถที่จะให้ทำทันทีหลังจากที่ Start Services หรือจะใช้ Job Schedule มาช่วยก็ได้เช่นเดียวกัน
Start Process
Process.Start("notepad.exe");
การทำ Job Schedule Time ตั้งเวลาทำงานบน Windows Service (VB.Net,C#)
วิธีการตั้ง Job Schedule เพื่อให้ Windows Service เรียก Start Process อื่นมาทำงาน
โดยจะทดสอบรันไฟล์ D:\myApp\myWinApplication.exe
C#
ScheduleTimer Timer = new ScheduleTimer();
protected override void OnStart(string[] args)
{
System.IO.File.AppendAllLines(strPath, new[] { "Starting time : " + DateTime.Now.ToString() });
Timer.Elapsed += new ScheduledEventHandler(timer_Elapsed);
Timer.AddEvent(new ScheduledTime("Daily", "09:55"));
Timer.Start();
}
private void timer_Elapsed(object sender, ScheduledEventArgs e)
{
Process.Start(@"D:\myApp\myWinApplication.exe");
System.IO.File.AppendAllLines(strPath, new[] { "..calling time : " + DateTime.Now.ToString() });
}
VB.Net
Private Timer As New ScheduleTimer()
Protected Overrides Sub OnStart(ByVal args() As String)
Dim strPath As String = AppDomain.CurrentDomain.BaseDirectory + "Log.txt"
Dim lines() As String = {"Starting time : " + DateTime.Now.ToString()}
System.IO.File.AppendAllLines(strPath, lines)
AddHandler Timer.Elapsed, New ScheduledEventHandler(AddressOf timer_Elapsed)
Timer.AddEvent(New ScheduledTime("Daily", "09:55"))
Timer.Start()
End Sub
Private Sub timer_Elapsed(sender As Object, e As ScheduledEventArgs)
Process.Start("D:\myApp\myWinApplication.exe")
Dim strPath As String = AppDomain.CurrentDomain.BaseDirectory + "Log.txt"
Dim lines() As String = {"..calling time :" + DateTime.Now.ToString()}
System.IO.File.AppendAllLines(strPath, lines)
End Sub
จาก Code นี้จะตั้งเวลาให้รันตอนเวลา 09:55
ตั้งเวลา 09:55 ให้รันไฟล์ D:\myApp\myWinApplication.exe
ตอนนี้เวลา 09:51
หลังจากที่ Services เริ่มทำงาน ในเบื้องต้น OnStart ทำงานและเขียน Log เวลาเพิ่มเข้าไป
เมือ่ถึงเวลา 09:55 ซึ่งเป็นเวลาที่ Job Schedule เริ่มทำงาน
จะมีการเขียน Log เพิ่มว่าเป็น calling time ซึ่งเป็นเวลาที่ตั้ง Job Schedule ไว้
เมื่อเปิด Task Manager ก็จะเห็นว่า Process ของ myWinApplication.exe ถูกเปิดและกำลังทำงาน
Note!! ในการใช้ Windows Service ทำการรันโปรแกรมอื่นๆ อาจจะต้องดูเรื่องสิทธิ์การเข้าถึงและสิทธิ์การรันโปรแกรมด้วย
|
ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท
|
|
|
By : |
ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ) |
|
Score Rating : |
|
|
|
Create/Update Date : |
2017-04-19 15:37:00 /
2017-04-20 17:21:48 |
|
Download : |
No files |
|
Sponsored Links / Related |
|
|
|
|
|
|
|