C#中进程无法最小化启动

9
pro.StartInfo.FileName =  @"C:\Program Files (x86)\Mozilla Firefox\firefox.exe";

pro.StartInfo.Arguments = a;
pro.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;

pro.Start();

我有这段代码,可以使Firefox以最小化的方式启动。但实际上,Firefox并没有以最小化窗口的形式启动,而是以普通窗口的形式启动。我的代码有什么问题?我需要让线程睡眠100毫秒吗?


“普通窗口”是指它以其默认大小启动吗? - Yuval Itzchakov
@YuvalItzchakov 我的意思是弹出窗口像最大化一样。 - Dionysis Nt.
2
如何使用C#最小化Firefox浏览器?请参考以下答案:http://stackoverflow.com/questions/12473343/how-to-minimize-ie-browser-using-c-sharp,但将“firefox”作为进程名称。 - Alan H
@AlanH 嗯,还是没有任何进展。我已经在“about:config”中更改了Firefox的设置,以便它不会弹出任何崩溃窗口。也许这是个问题? - Dionysis Nt.
@Dionisis:你在说什么?点击Alan H发布的链接,看看被接受的答案。 - C4d
2个回答

5
试试这个吧 :)
pro.StartInfo.FileName =  @"C:\Program Files (x86)\Mozilla Firefox\firefox.exe";

pro.StartInfo.Arguments = a;
pro.UseShellExecute = true;
pro.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;

pro.Start();

我认为只有在火狐浏览器没有运行时,这个方法才能生效。否则它会打开火狐浏览器,但不会最小化。如果你想要在进程已经启动的情况下最小化自己启动的火狐浏览器,你需要像这里描述的那样处理ShowWindow


不行,它没起作用。我想要启动火狐浏览器最小化。在我执行此操作时没有打开任何火狐窗口。 - Dionysis Nt.

-1

要在不打开终端窗口的情况下启动进程,可以这样做:

 ProcessStartInfo pro = new ProcessStartInfo();

 pro.FileName = 'pathToFile'
 pro.RedirectStandardInput = true;
 pro.RedirectStandardOutput = false;
 pro.Arguments = 'some arguments'
 pro.UseShellExecute = false;
 pro.CreateNoWindow = true; // <- imp. line

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接