我想在服务程序里启动外部程序,启动是启动了,在资源管理器里可以看到,但是却看不到外部程序的界面啊??是不是WINDOWS服务程序不支持显示外部程序?(有这种说法吗?晕)比如说:  我在我的“WINDOWS服务程序”里启动了CALC.EXE,虽然任务管理器里有了CALC.EXE的进程,但是我却看不到CALC.EXE的界面啊?欢迎大家讨论!顶者有分

解决方案 »

  1.   

    System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();Info.FileName = "notepad.exe";
    Info.WorkingDirectory = "C:\\";System.Diagnostics.Process Proc ;
    Proc = System.Diagnostics.Process.Start(Info);
    Proc.WaitForExit();
    就是这个了,同样这段代码,在WINFORM程序里可以正常显示,但是到服务里就不行
      

  2.   

    我把你的代码拷到我新建的工程里面,编译直接运行,还是能出来记事本窗口的.我用的是windows 2000 server ,vs2005.如下:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.ServiceProcess;
    using System.Text;
    namespace WindowsService1
    {
        public partial class Service1 : ServiceBase
        {
            public Service1()
            {
                InitializeComponent();
                System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();            Info.FileName = "notepad.exe";
                Info.WorkingDirectory = "C:\\winnt\\";            System.Diagnostics.Process Proc;
                Proc = System.Diagnostics.Process.Start(Info);
                Proc.WaitForExit();        }        protected override void OnStart(string[] args)
            {
                        }        protected override void OnStop()
            {
                // TODO: Add code here to perform any tear-down necessary to stop your service.
            }
        }
    }
      

  3.   

    service -> property -> log on -> allow this service to interact with desktop
      

  4.   

    你需要在服务管理器里面,右键查看yourService的属性,在登陆页中选中“允许服务与桌面交互”。
      

  5.   

    我按照楼上两位的设置,可是还是弹不出来啊
    倒是可以弹个对话框,我用的是WIN 2000 SERVER,vs2003
      

  6.   

    不要使用SYSTEM权限, 使用你当前的登录帐号来运行服务