知道了,原来要选allow interact with desktop!
但有没有办法在安装的时候就自动选好呢?
另外安装好后,service能不能自动启动呢?让user手动启动或重起机器太麻烦了

解决方案 »

  1.   

    可以修改注册表让SERVICE自动启动
    hkey_local_machine/system/currentcontrolset/services
    找到你安装的那个服务,然后将START健值改成2就可以了,另外服务的说明在写程序的时候好象也不能加,也要加到注册表中.
    也可以用servicecontroller做一个程序在程序中控制服务的启动.
      

  2.   

    不大明白。popcorn(米花) 你是说将START健值改成2后这个service就开始运行了吗?
      

  3.   

    Process myProcess1 = new Process();
    myProcess1.StartInfo.FileName = yourAppFile;
    myProcess1.StartInfo.Arguments =yourParameters;
    myProcess1.StartInfo.CreateNoWindow=true;//Show in a new window
    myProcess1.Start();
      

  4.   

    谢谢 Knight94(愚翁)
    不过我的意思是,装好一个service后能不能让他马上能自动运行。
      

  5.   

    To 不过我的意思是,装好一个service后能不能让他马上能自动运行。是Service运行呢,还是App呢?
      

  6.   

    Service运行,最好还由个tray icon的app也能运行。
    我试了试
    1。service能不能自动启动。
    2。用Process.Start();发现app程序起动了,但没有界面显示(没有tray icon)。
    原来要选allow interact with desktop!但有没有办法在安装的时候就自动选好呢?
      

  7.   

    To 1。service能不能自动启动。如下:
    ServiceInstaller serviceInstaller = new ServiceInstaller();
    serviceInstaller.StartType = ServiceStartMode.Automatic;To 2
    如果是Service+App
    你可以在Service的Main中去运行程序,类似:
    Process myProcess1 = new Process();
    myProcess1.StartInfo.FileName = yourAppFile;
    myProcess1.StartInfo.Arguments =yourParameters;
    myProcess1.StartInfo.CreateNoWindow=true;//Show in a new window
    myProcess1.Start();
      

  8.   

    终于搞明白了,原来custom action非常强大, 在里头什么都能。
      

  9.   

    to Knight94(愚翁) 
    ServiceInstaller serviceInstaller = new ServiceInstaller();
    serviceInstaller.StartType = ServiceStartMode.Automatic;
    ----------这没用,只是complie time的, 装好后还是要手起。Service的Main中去运行程序,类似:
    Process myProcess1 = new Process();
    myProcess1.StartInfo.FileName = yourAppFile;
    myProcess1.StartInfo.Arguments =yourParameters;
    myProcess1.StartInfo.CreateNoWindow=true;//Show in a new window
    myProcess1.Start();
    ----------这也没用,windows service是不能有GUI的,要选allow interact with desktop。