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

fireswallow 2011-02-25 09:47:51
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程序 还是在前台
...全文
1760 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
fireswallow 2011-02-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wuyq11 的回复:]

ShowWindowAsync
[/Quote]

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

有没有其他思路?
fireswallow 2011-02-26
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wuyq11 的回复:]

ShowWindowAsync
[/Quote]



大侠,就是大侠 说话这么简洁
fireswallow 2011-02-26
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 yalan 的回复:]

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

ShowWindowAsync


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

有没有其他思路?


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


哈,请问 具体怎么把一个外部的窗口exe程序做成服务?
josephwuxiaameng 2011-02-26
  • 打赏
  • 举报
回复
设置窗口为ShowInTaskbar = false;Visible = false;窗就不可见了!
yalan 2011-02-26
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 fireswallow 的回复:]
引用 10 楼 wuyq11 的回复:

ShowWindowAsync


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

有没有其他思路?
[/Quote]

如果还不行那就做成服务,肯定没问题呵呵
wuyq11 2011-02-25
  • 打赏
  • 举报
回复
ShowWindowAsync
fireswallow 2011-02-25
  • 打赏
  • 举报
回复
哈,兄弟辛苦辛苦
我这里启动calc 怎么也在前台
yalan 2011-02-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yalan 的回复:]
引用 4 楼 fireswallow 的回复:
引用 1 楼 wuyq11 的回复:

多线程
IsBackground


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

private……
[/Quote]


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





我说我的电脑咋死在那里了呢~~~~~桌面什么都没有,后台出来100个计算器
fireswallow 2011-02-25
  • 打赏
  • 举报
回复
BackFile.exe的窗口
yalan 2011-02-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fireswallow 的回复:]
引用 1 楼 wuyq11 的回复:

多线程
IsBackground


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

private void BachFile()
{
Pr……
[/Quote]


CMD窗口还是你的BackFile.exe窗口?
fireswallow 2011-02-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]

多线程
IsBackground
[/Quote]

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);
}


这样写还是不行,窗口还是显示出来了
yalan 2011-02-25
  • 打赏
  • 举报
回复
IsBackground=true;

设置为后台线程即可


如梦大大,你真快~~~~~~~!
笑道江湖情 2011-02-25
  • 打赏
  • 举报
回复
ProcessStartInfo startInfo = new ProcessStartInfo("D:BachFile.exe");

路径写错了吧
ProcessStartInfo startInfo = new ProcessStartInfo("D:\\BachFile.exe");
wuyq11 2011-02-25
  • 打赏
  • 举报
回复
多线程
IsBackground

111,119

社区成员

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

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

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