Process.Start程序启动后,在后台运行

时间:2022-08-29 14:45:38
C#中如何使用Process.Start()启动一个exe窗口程序,并且这个程序在后台运行?
我使用的是

  ProcessStartInfo startInfo = new ProcessStartInfo("D:BachFile.exe");
  startInfo.WindowStyle = ProcessWindowStyle.Hidden;
  startInfo.CreateNoWindow = true;
  startInfo.UseShellExecute = false;
  Process.Start(startInfo);


但不起作用BachFile.exe程序 还是在前台

16 个解决方案

#1


多线程
IsBackground

#2


ProcessStartInfo startInfo = new ProcessStartInfo("D:BachFile.exe");

路径写错了吧    
ProcessStartInfo startInfo = new ProcessStartInfo("D:\\BachFile.exe");

#3


IsBackground=true;

设置为后台线程即可


如梦大大,你真快~~~~~~~!

#4


引用 1 楼 wuyq11 的回复:
多线程
IsBackground


Thread BackThread = new Thread(new ThreadStart(BachFile));
BackThread.IsBackground = true;
BackThread.Start();
.....

private void BachFile()
{
  ProcessStartInfo startInfo = new ProcessStartInfo("D://BachFile.exe");
  startInfo.WindowStyle = ProcessWindowStyle.Hidden;
  startInfo.CreateNoWindow = true;
  startInfo.UseShellExecute = false;
  Process.Start(startInfo);
}


这样写还是不行,窗口还是显示出来了

#5


引用 4 楼 fireswallow 的回复:
引用 1 楼 wuyq11 的回复:

多线程
IsBackground


Thread BackThread = new Thread(new ThreadStart(BachFile));
BackThread.IsBackground = true;
BackThread.Start();
.....

private void BachFile()
{
  Pr……



CMD窗口还是你的BackFile.exe窗口?

#6


BackFile.exe的窗口

#7


引用 5 楼 yalan 的回复:
引用 4 楼 fireswallow 的回复:
引用 1 楼 wuyq11 的回复:

多线程
IsBackground


Thread BackThread = new Thread(new ThreadStart(BachFile));
BackThread.IsBackground = true;
BackThread.Start();
.....

private……



晕,郁闷死,帮你调试程序,刚按了运行老婆叫我,我回来一看~~~~~~~~


Process.Start程序启动后,在后台运行


我说我的电脑咋死在那里了呢~~~~~桌面什么都没有,后台出来100个计算器

#9


哈,兄弟辛苦辛苦
我这里启动calc 怎么也在前台

#10


ShowWindowAsync

#11


引用 10 楼 wuyq11 的回复:
ShowWindowAsync




大侠,就是大侠 说话这么简洁

#12


引用 10 楼 wuyq11 的回复:
ShowWindowAsync


有没有其他的办法,要是这样SendMessage就不起作用了,字符发送不过去
要是发送完字符后在 ShowWindowAsync 那样句柄就找不到了

有没有其他思路?

#13


引用 12 楼 fireswallow 的回复:
引用 10 楼 wuyq11 的回复:

ShowWindowAsync


有没有其他的办法,要是这样SendMessage就不起作用了,字符发送不过去
要是发送完字符后在 ShowWindowAsync 那样句柄就找不到了

有没有其他思路?


如果还不行那就做成服务,肯定没问题呵呵

#14


设置窗口为ShowInTaskbar = false;Visible = false;窗就不可见了!

#15


引用 13 楼 yalan 的回复:
引用 12 楼 fireswallow 的回复:
引用 10 楼 wuyq11 的回复:

ShowWindowAsync


有没有其他的办法,要是这样SendMessage就不起作用了,字符发送不过去
要是发送完字符后在 ShowWindowAsync 那样句柄就找不到了

有没有其他思路?


如果还不行那就做成服务,肯定没问题呵呵



哈,请问 具体怎么把一个外部的窗口exe程序做成服务?

#16


该回复于2011-02-26 22:45:57被版主删除

#1


多线程
IsBackground

#2


ProcessStartInfo startInfo = new ProcessStartInfo("D:BachFile.exe");

路径写错了吧    
ProcessStartInfo startInfo = new ProcessStartInfo("D:\\BachFile.exe");

#3


IsBackground=true;

设置为后台线程即可


如梦大大,你真快~~~~~~~!

#4


引用 1 楼 wuyq11 的回复:
多线程
IsBackground


Thread BackThread = new Thread(new ThreadStart(BachFile));
BackThread.IsBackground = true;
BackThread.Start();
.....

private void BachFile()
{
  ProcessStartInfo startInfo = new ProcessStartInfo("D://BachFile.exe");
  startInfo.WindowStyle = ProcessWindowStyle.Hidden;
  startInfo.CreateNoWindow = true;
  startInfo.UseShellExecute = false;
  Process.Start(startInfo);
}


这样写还是不行,窗口还是显示出来了

#5


引用 4 楼 fireswallow 的回复:
引用 1 楼 wuyq11 的回复:

多线程
IsBackground


Thread BackThread = new Thread(new ThreadStart(BachFile));
BackThread.IsBackground = true;
BackThread.Start();
.....

private void BachFile()
{
  Pr……



CMD窗口还是你的BackFile.exe窗口?

#6


BackFile.exe的窗口

#7


引用 5 楼 yalan 的回复:
引用 4 楼 fireswallow 的回复:
引用 1 楼 wuyq11 的回复:

多线程
IsBackground


Thread BackThread = new Thread(new ThreadStart(BachFile));
BackThread.IsBackground = true;
BackThread.Start();
.....

private……



晕,郁闷死,帮你调试程序,刚按了运行老婆叫我,我回来一看~~~~~~~~


Process.Start程序启动后,在后台运行


我说我的电脑咋死在那里了呢~~~~~桌面什么都没有,后台出来100个计算器

#8


#9


哈,兄弟辛苦辛苦
我这里启动calc 怎么也在前台

#10


ShowWindowAsync

#11


引用 10 楼 wuyq11 的回复:
ShowWindowAsync




大侠,就是大侠 说话这么简洁

#12


引用 10 楼 wuyq11 的回复:
ShowWindowAsync


有没有其他的办法,要是这样SendMessage就不起作用了,字符发送不过去
要是发送完字符后在 ShowWindowAsync 那样句柄就找不到了

有没有其他思路?

#13


引用 12 楼 fireswallow 的回复:
引用 10 楼 wuyq11 的回复:

ShowWindowAsync


有没有其他的办法,要是这样SendMessage就不起作用了,字符发送不过去
要是发送完字符后在 ShowWindowAsync 那样句柄就找不到了

有没有其他思路?


如果还不行那就做成服务,肯定没问题呵呵

#14


设置窗口为ShowInTaskbar = false;Visible = false;窗就不可见了!

#15


引用 13 楼 yalan 的回复:
引用 12 楼 fireswallow 的回复:
引用 10 楼 wuyq11 的回复:

ShowWindowAsync


有没有其他的办法,要是这样SendMessage就不起作用了,字符发送不过去
要是发送完字符后在 ShowWindowAsync 那样句柄就找不到了

有没有其他思路?


如果还不行那就做成服务,肯定没问题呵呵



哈,请问 具体怎么把一个外部的窗口exe程序做成服务?

#16


该回复于2011-02-26 22:45:57被版主删除