当前位置:编程学习 > C#/ASP.NET >>

service启动winform程式 遇到的问题

写了一个service,电脑开机便一个winform程式 ,指定 启动在账号 test下,并且要显示 窗体。
现在遇到一个问题 :
电脑开机,service启动了,winform程式无法显示窗体,只能在任务管理器里看到。
下述为主要代码: 
 // serviceProcessInstaller1
            // 
            this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.User;
            this.serviceProcessInstaller1.Password = "test";
            this.serviceProcessInstaller1.Username = @".\test";
            this.serviceProcessInstaller1.Committed +=new System.Configuration.Install.InstallEventHandler(serviceProcessInstaller1_Committed);
         

OnStart方法里有:
                 Process process = new Process();        
           
                string StartAppPath = @"D:\Program";                    

                process.StartInfo.FileName = "cmd.exe";
                process.StartInfo.UseShellExecute = false;
                process.StartInfo.CreateNoWindow = false;
                process.StartInfo.RedirectStandardInput = true;
                process.StartInfo.RedirectStandardOutput = true;
                process.Start();
                
                process.StandardInput.WriteLine("cd /d " + StartAppPath);
                process.StandardInput.WriteLine("Program.exe");               

                process.StandardInput.WriteLine("exit"); --------------------编程问答-------------------- 如果ServiceAccount.User改成System
  this.serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.System;
  // this.serviceProcessInstaller1.Password = "test";
  // this.serviceProcessInstaller1.Username = @".\test";
会出现程式在System下,不是在test账号下,
如何实现程式能在指定账号Test下运行winform程式,并显示窗口 --------------------编程问答-------------------- 设置服务属性"登录--允许服务与桌面交互"
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/ --------------------编程问答--------------------
引用 2 楼 feiyun0112 的回复:
设置服务属性"登录--允许服务与桌面交互"
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/


设定之后,程式 会在启动在system下,无法在启动在test账号下 --------------------编程问答-------------------- 不如把启动信息写在注册表里,能起到一样的效果。 --------------------编程问答--------------------
引用 3 楼 kxghost2 的回复:
Quote: 引用 2 楼 feiyun0112 的回复:

设置服务属性"登录--允许服务与桌面交互"
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/


设定之后,程式 会在启动在system下,无法在启动在test账号下


这个要求本来就有问题,你用B账号登陆,怎么可能看到A的账户要弹出的窗口 --------------------编程问答-------------------- windows系统允许多用户同时运行,但是用户之间不能共享UI。 --------------------编程问答-------------------- service 没有界面的好处是没有用户登录,也可以正常运行,楼主这是用错了地方吧。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,