解决方案 »

  1.   


    ProcessStartInfo info = new ProcessStartInfo();
                info.FileName ="C:\\csdra\\bin\\RunCsdra.exe";
                info.CreateNoWindow = true;//创建活动窗口
                info.RedirectStandardError = false;
                info.UseShellExecute = true;
                System.Diagnostics.Process pro = null;
                try
                {
                    pro = new Process();
                    pro.StartInfo = info;
                    pro.EnableRaisingEvents = true;
                    //pro.Exited += pro_Exited;
                    //pro.ErrorDataReceived += new DataReceivedEventHandler(pro_ErrorDataReceived);
                    pro.Start();
                    Thread.Sleep(5000);
                    //pro.BeginErrorReadLine();
                }
                catch (System.ComponentModel.Win32Exception ex)
                {
                    Console.WriteLine("系统找不到指定的文件。\r{0}", ex.ToString());
                    return;
                }
                catch (Exception ex2)
                {
                    return;
                }
      

  2.   

    不行哦   这方法试过了
    把info.CreateNoWindow = true;//创建活动窗口
    改为info.CreateNoWindow = false;//创建活动窗口
    ---------------------------
    再看了一下你的题目,是这个窗体没显示对吧?"C:\\csdra\\bin\\RunCsdra.exe"你手动打开是有界面的吗?
      

  3.   

    使用ProcessStartInfo。
    关键在于设置psi.CreateNoWindow = true;
      

  4.   

    windows service里这样没效果哦
    启动了就只有一个进程  没窗体
      

  5.   

    把info.CreateNoWindow = true;//创建活动窗口
    改为info.CreateNoWindow = false;//创建活动窗口
    ---------------------------
    再看了一下你的题目,是这个窗体没显示对吧?"C:\\csdra\\bin\\RunCsdra.exe"你手动打开是有界面的吗?
    对  注意 我这个事  windows服务哦  不是窗体程序
      

  6.   

    从vista开始服务有session隔离,服务运行在session 0,和用户不是一个session,也就是不是一个桌面环境,通过服务启动的程序也默认运行在session 0,用户在session 1就看不见它,需要通过挺麻烦的办法让进程在用户的session启动才能看到。可以看看微软关于session隔离的说明文档。如果真想做,参考这个:http://www.cnblogs.com/luxilin/p/3347212.html
      

  7.   

    默认情况下,windows服务不能与桌面交互
    可以参考这个
    http://www.itstrike.cn/Question/WinForm-with-CSharp-to-achieve-WINDOWS-service-launched
      

  8.   

     private void ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                openFileDialog1.Title = "请选择客户端程序";            openFileDialog1.Filter = "exe files (*.exe)|*.exe";
                openFileDialog1.FilterIndex = 1;
                openFileDialog1.RestoreDirectory = true;            if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {                Process p = new Process();
                    p.StartInfo.FileName = openFileDialog1.FileName; 
            
                    for (int i = 0; i < 10; i++)
                    {
                        p.Start();
                    }
                }
            }
      

  9.   

    windows服务甚至无法使用messagebox.show,就是不能跟桌面交互,这个不能实现的吧,或者说其实是调用起来了,但是可惜当前用户看不到。  你应该把窗体调用起来后的数据处理逻辑写到一个根本不需要用户看到的exe里面,只管默默调用就行了。