WinSDemo.csusing System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.ServiceProcess;
using System.IO;
using System.Threading;
namespace WinSDemo
{
public class WinSDemo : System.ServiceProcess.ServiceBase
{
/// <summary> 
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
private bool blnStopThread;
private Thread thdMain; public WinSDemo()
{
// This call is required by the Windows.Forms Component Designer.
InitializeComponent(); // TODO: Add any initialization after the InitComponent call
} // The main entry point for the process
static void Main()
{
System.ServiceProcess.ServiceBase[] ServicesToRun;

// More than one user Service may run within the same process. To add
// another service to this process, change the following line to
// create a second service object. For example,
//
//   ServicesToRun = New System.ServiceProcess.ServiceBase[] {new Service1(), new MySecondUserService()};
//
ServicesToRun = new System.ServiceProcess.ServiceBase[] { new WinSDemo() }; System.ServiceProcess.ServiceBase.Run(ServicesToRun);
} /// <summary> 
/// Required method for Designer support - do not modify 
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
// 
// WinSDemo
// 
this.CanPauseAndContinue = true;
this.ServiceName = "MyTest"; } /// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null) 
{
components.Dispose();
}
}
base.Dispose( disposing );
} /// <summary>
/// Set things in motion so your service can do its work.
/// </summary>
protected override void OnStart(string[] args)
{
// TODO: Add code here to start your service. thdMain=new Thread(new ThreadStart(WriteLog));
thdMain.Start();
}
 
/// <summary>
/// Stop this service.
/// </summary>
protected override void OnStop()
{
// TODO: Add code here to perform any tear-down necessary to stop your service.
blnStopThread=true;
thdMain.Join();
} protected override void OnPause()
{
thdMain.Suspend();
} protected override void OnContinue()
{
thdMain.Resume();
} protected void WriteLog()
{
StreamWriter myWriter=null;
do
{
Process.Start("net","send localhost yourValue");
try
{
myWriter=new StreamWriter("c:\\MyLog.txt",true);
myWriter.WriteLine(DateTime.Now.ToString());
myWriter.Close();
}
catch{}; Thread.Sleep(5000);
}while(blnStopThread==false);

}
}
}

解决方案 »

  1.   

    WinSDemoIns.csusing System;
    using System.Collections;
    using System.ComponentModel;
    using System.Configuration.Install;
    using System.ServiceProcess;
    namespace WinSDemo
    {
    /// <summary>
    /// Summary description for WinSDemoIns.
    /// </summary>
    [RunInstaller(true)]
    public class WinSDemoIns : System.Configuration.Install.Installer
    {
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.Container components = null;
    private ServiceInstaller serviceInstaller;
    private ServiceProcessInstaller processInstaller; public WinSDemoIns()
    {
    // This call is required by the Designer.
    InitializeComponent(); // TODO: Add any initialization after the InitComponent call
    processInstaller = new ServiceProcessInstaller();
    serviceInstaller = new ServiceInstaller(); // Service will run under system account
    processInstaller.Account = ServiceAccount.LocalSystem; // Service will have Start Type of Manual
    serviceInstaller.StartType = ServiceStartMode.Manual; serviceInstaller.ServiceName = "MyTest"; Installers.Add(serviceInstaller);
    Installers.Add(processInstaller);
    } #region Component Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
    components = new System.ComponentModel.Container();
    }
    #endregion
    }
    }此外,需要添加引用System.ServiceProcess.Dll
      

  2.   

    谢谢,你的这个代码结构很清楚。
    可以将你调试好的整个Demo发给我吗?如何注册服务而让它运转起来我还是不太明白。[email protected]非常感谢!
      

  3.   

    收到.
    Appreciate your help!