windows service OnStart时 打开一个外部exe 不显示exe窗体。。求解 windows service界面exe 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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; } 不行哦 这方法试过了把info.CreateNoWindow = true;//创建活动窗口改为info.CreateNoWindow = false;//创建活动窗口---------------------------再看了一下你的题目,是这个窗体没显示对吧?"C:\\csdra\\bin\\RunCsdra.exe"你手动打开是有界面的吗? 使用ProcessStartInfo。关键在于设置psi.CreateNoWindow = true; windows service里这样没效果哦启动了就只有一个进程 没窗体 把info.CreateNoWindow = true;//创建活动窗口改为info.CreateNoWindow = false;//创建活动窗口---------------------------再看了一下你的题目,是这个窗体没显示对吧?"C:\\csdra\\bin\\RunCsdra.exe"你手动打开是有界面的吗?对 注意 我这个事 windows服务哦 不是窗体程序 从vista开始服务有session隔离,服务运行在session 0,和用户不是一个session,也就是不是一个桌面环境,通过服务启动的程序也默认运行在session 0,用户在session 1就看不见它,需要通过挺麻烦的办法让进程在用户的session启动才能看到。可以看看微软关于session隔离的说明文档。如果真想做,参考这个:http://www.cnblogs.com/luxilin/p/3347212.html 默认情况下,windows服务不能与桌面交互可以参考这个http://www.itstrike.cn/Question/WinForm-with-CSharp-to-achieve-WINDOWS-service-launched 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(); } } } windows服务甚至无法使用messagebox.show,就是不能跟桌面交互,这个不能实现的吧,或者说其实是调用起来了,但是可惜当前用户看不到。 你应该把窗体调用起来后的数据处理逻辑写到一个根本不需要用户看到的exe里面,只管默默调用就行了。 【急,17号就要上交了!】谁能跟我讲下这个问题是否需要UDP“打洞”? 如何批量移动文件 关于调用32位动态链接库的问题 VS2005 vs2008 问题 请问c#中的file类和fileinfo类有什么区别? 请问各位:哪里有.net制作activex控件的实例。拜托了! WEB中如何实现套打!!急急急急急急 求教sql语句 初学C#编码,请各位高手多提意见,谢谢! 界面问题;很急,请大家帮帮;分数不成问题 【求助】string类型的赋值问题 c#picturebox中画圆弧
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;
}
把info.CreateNoWindow = true;//创建活动窗口
改为info.CreateNoWindow = false;//创建活动窗口
---------------------------
再看了一下你的题目,是这个窗体没显示对吧?"C:\\csdra\\bin\\RunCsdra.exe"你手动打开是有界面的吗?
关键在于设置psi.CreateNoWindow = true;
启动了就只有一个进程 没窗体
改为info.CreateNoWindow = false;//创建活动窗口
---------------------------
再看了一下你的题目,是这个窗体没显示对吧?"C:\\csdra\\bin\\RunCsdra.exe"你手动打开是有界面的吗?
对 注意 我这个事 windows服务哦 不是窗体程序
可以参考这个
http://www.itstrike.cn/Question/WinForm-with-CSharp-to-achieve-WINDOWS-service-launched
{
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();
}
}
}