0
我有下面的xml使用我讀取計劃的日期和時間在計劃的時間運行應用程序。使用Windows服務和XML的計劃任務
<AvSchedule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Days>
<Day Name="Monday">true</Day>
<Day Name="Tuesday">false</Day>
<Day Name="Wednesday">false</Day>
<Day Name="Thursday">false</Day>
<Day Name="Friday">false</Day>
<Day Name="Saturday">false</Day>
<Day Name="Sunday">false</Day>
</Days>
<Time Hour="12" Minutes="15" />
</AvSchedule>
下面是我寫反序列化的XML代碼:
AvSchedule avSchedule = null;
private void Deserialize()
{
FileStream fs = File.OpenRead(@"C:\Scheduler.xml");
XmlSerializer serializer = new XmlSerializer(typeof(AvSchedule));
Object obj = serializer.Deserialize(fs);
if((obj != null) && (obj is AvSchedule))
{
avSchedule = obj as AvSchedule;
}
}
下面是我的實現上運行的服務啓動應用程序。
protected override void OnStart(string[] args)
{
//System.Diagnostics.Debugger.Launch();
base.OnStart(args);
Deserialize();
Thread thr = new Thread(new ThreadStart(ScheduleThread));
thr.Start();
}
public void ScheduleThread()
{
//Process logic should go here
try
{
System.Diagnostics.ProcessStartInfo processStartInfo = new System.Diagnostics.ProcessStartInfo();
processStartInfo.Arguments = "/Task {21211-A06D-4558-B833-98E8C7F62}";
processStartInfo.FileName = "C:\\Program Files (x86)\\Logic\application.exe";
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo = processStartInfo;
process.Start();
}
catch (Exception e)
{
Console.WriteLine("Unable to run", e.Message);
}
}
}
///Sleep for 1 minute
Thread.Sleep(TimeSpan.FromMinutes(1));
}
}
現在我想在達到預定時間時運行上述應用程序。我需要將當前時間和日期與xml中的計劃時間和日期進行比較,並按照計劃的時間和日期運行應用程序。請爲此提供實施幫助。
我也需要確保服務達到預定時間,每天只運行時(服務應該是空閒狀態,直至達到預定時間)
你可以請提供其他解決方案?我無法在我的應用程序中使用第三方應用程序。 – user004 2013-03-05 12:08:07
@ user004你試過我的例子嗎? – giammin 2013-03-05 15:21:09
這就是我正在尋找..感謝很多giammin – user004 2013-03-06 03:50:10