Я пытаюсь создать простой сервис на C # с использованием VS2008, который создает текстовый файл, когда компьютер переходит в спящий режим. Мой текущий код выдает следующую ошибку:
'SleepNotifierService.WqlEventQuery' не содержит конструктор, который принимает аргументы '1'
Теперь я посмотрел в браузере объектов, и похоже, что он принимает один аргумент. Вот что должен был сказать браузер:
public WqlEventQuery (строка queryOrEventClassName)
Вот мой код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Management;
using System.IO;
namespace SleepNotifierService
{
public class WqlEventQuery : EventQuery { }
public partial class Service1 : ServiceBase
{
ManagementEventWatcher _watcher;
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
WqlEventQuery query = new WqlEventQuery("Win32_PowerManagementEvent");
_watcher = new ManagementEventWatcher(query);
_watcher.EventArrived += new EventArrivedEventHandler(watcher_EventArrived);
_watcher.Start();
}
protected override void OnStop()
{
_watcher.Stop();
}
void watcher_EventArrived(object sender, EventArrivedEventArgs e)
{
try
{
int eventType = Convert.ToInt32(e.NewEvent.Properties["EventType"].Value);
switch (eventType)
{
case 4:
Sleep();
break;
case 7:
Resume();
break;
}
}
catch (Exception ex)
{
//Log(ex.Message);
}
}
public void Sleep()
{
StreamWriter SW;
SW = File.CreateText("c:\\MyTextFile.txt");
SW.WriteLine("Sleep mode initiated");
SW.Close();
}
public void Resume()
{
}
}
}
Я неправильно интерпретировал этот объектный браузер? Я новичок в создании сервисов и C # / .NET в целом, так что это может быть что-то тривиальное.
Ценю любую помощь,
Томек