用windows服务打开某个软件,在桌面上看不到被打开的软件,但进程里有。

fihuang 2013-10-12 08:10:37
用windows服务打开某个软件,在桌面上看不到被打开的软件,但进程里有。
代码如下。请大家把把脉。
先谢过大家。


ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"C:\Program Files\Csdn\csdn.exe";
Process.Start(startInfo);
...全文
868 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cheng2005 2013-10-14
  • 打赏
  • 举报
回复
怎么楼主还是不明白,服务跑在令一个用户下,跟当前用户不一样。 简单来说,服务的世界和用户的世界是不同的。
fihuang 2013-10-14
  • 打赏
  • 举报
回复
下面这种方式也不对,再来请教。 假设需要打开的软件为: C:\Documents and Settings\Administrator\Local Settings\Application Data\Google\Chrome\Application\chrome.exe

Process process = new Process();                    //创建进程对象  
process.StartInfo.FileName = "cmd.exe";             //设定需要执行的命令 
process.StartInfo.UseShellExecute = false;          //不使用系统外壳程序启动  
process.StartInfo.RedirectStandardInput = true;     //重定向输入(一定是true) 
process.StartInfo.RedirectStandardOutput = true;    //重定向输出  
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = false;            //不创建窗口 

if (process.Start())
{
    process.StandardInput.WriteLine(path);
    process.StandardInput.WriteLine("exit");
    process.Close();
}
            
threenewbee 2013-10-13
  • 打赏
  • 举报
回复
这是显而易见的。就好比你电脑上有两个用户,A用户打开的桌面和窗口,B用户是看不到的。
fihuang 2013-10-13
  • 打赏
  • 举报
回复
好的 谢谢上面的朋友 明天试试
rtdb 2013-10-12
  • 打赏
  • 举报
回复
WIndows服务是另一个LOGON,它打开的程序与当前用户不是一个Session, 所以不会显示。
人生导师 2013-10-12
  • 打赏
  • 举报
回复
windows 服务是不能打开用户界面的,但是该程序是已经启动了,你还是使用控制台打开某个应用程序或WinForm
udSoft2020 2013-10-12
  • 打赏
  • 举报
回复
这个有无数范例的不是,服务程序叫做。

110,524

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧