web-dev-qa-db-ja.com

バックグラウンドでプロセスを開始するにはどうすればよいですか?

Googleで、またはStackOverflowでここで答えを見つけることができないようです。

プロセスを(アクティブウィンドウの背後にある)バックグラウンドで開始するにはどうすればよいですか?同様に、プロセスの開始時に、ユーザーが使用している現在のアプリケーションを中断することはありません。

プロセスは現在のアプリケーションの前に飛び出すことはなく、ただ開始するだけです。

これは私が使っているものです:

Process.Start(Chrome.exe);

Chromeが起動すると、アプリケーションの前にポップアップします。バックグラウンドで開始するにはどうすればよいですか?

私も試しました:

psi = new ProcessStartInfo ("Chrome.exe");
psi.UseShellExecute = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.WindowStyle = ProcessWindowStyle.Minimized;
Process.Start(psi);

しかし、以前のものとまったく違いはありません。

ありがとう。

10

これを試して:

 Process p = new Process();
        p.StartInfo = new ProcessStartInfo("Chrome.exe");
        p.StartInfo.WorkingDirectory = @"C:\Program Files\Chrome";
        p.StartInfo.CreateNoWindow = true;
        p.Start();

また、それがうまくいかない場合は、追加してみてください

p.StartInfo.UseShellExecute = false;
25
Tayla Wilson

以下のコードはあなたが必要なことをするはずです:

class Program
{
    static void Main(string[] args)
    {
        var handle = Process.GetCurrentProcess().MainWindowHandle;
        Process.Start("Chrome.exe").WaitForInputIdle();
        SetForegroundWindow(handle.ToInt32());
        Console.ReadLine();
    }

    [DllImport("User32.dll")]
    public static extern Int32 SetForegroundWindow(int hWnd); 
}
4
Vitaliy Tsvayer