在服务控制面板的登录选项卡上,选中“允许服务与桌面交互”复选框。那么你可以做这样的事情。
public class WinService : ServiceBase
{
Process p = new Process();
public WinService()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
RunApp();
}
private void RunApp()
{
p.StartInfo.FileName = @"<path to your app>";
p.StartInfo.Arguments = "<your params>";
p.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
p.Start();
}
protected override void OnStop()
{
p.Kill();
}
}
编辑:参数传递:
列出 startInfo.Arguments 中的所有参数,用空格分隔。数字参数按原样列出,字符串参数用引号列出。
例子:
如果您的应用程序的命令行是:
YourApp.exe param1 "param two" param3
那么你的 startInfo.Arguments 应该设置为:
startInfo.Arguments = "param1 \"param two\" param3";