プロセスをプログラムでバックグラウンドにするにはどうすればよいですか?
私が望むのは、ユーザーがプロセスの実行可能ファイルをダブルクリックすることです。それはバックグラウンドに入り、実行中にウィンドウを開きません。
Visual C++ のコード スニペットは非常に役立ちます
プロセスをプログラムでバックグラウンドにするにはどうすればよいですか?
私が望むのは、ユーザーがプロセスの実行可能ファイルをダブルクリックすることです。それはバックグラウンドに入り、実行中にウィンドウを開きません。
Visual C++ のコード スニペットは非常に役立ちます
代わりにWindows サービスを作成することを検討しましたか? これらは、UI を表示せずにバックグラウンドで実行するように特別に設計されています。
それ以外の場合は、ウィンドウなしでアプリケーションを作成してください。
これが古いことは知っていますが、人々が検索でこれを見つけたときに何かを投稿しようと思いました.
Cody Gray の設計の正確さに対する回答は気に入っていますが、選択の余地がない場合もあります。
新しいウィンドウにジャンプせずにプログラムを起動したい場合 (バックグラウンドに表示されるか最小化されている場合)、またはウィンドウをまったく作成しない場合は、関数ShellExecute
とShellExecuteEx
関数を調べてみてください。引数nShowCmd
(またはnShow
) は、(とりわけ) オプションを提供します。
SW_HIDE
ウィンドウを非表示にして、別のウィンドウをアクティブにします。
SW_SHOWMINNOACTIVE
ウィンドウを最小化されたウィンドウとして表示します。アクティブなウィンドウはアクティブなままです。
ドキュメントにあるように、SW_HIDEは、指定した実行可能ファイルを実行するプロセスを作成しますが、このプログラムが通常ウィンドウを作成する場合、何も表示されません。
これが役立つかもしれません: http://ss64.com/nt/start.html
私はこの方法を試してみましたが、うまくいきました: コンソール アプリケーションを作成し、他のコンソール アプリケーションと同じようにサブ メインにコードを記述します。プロジェクト プロパティのアプリケーション タイプをコンソール アプリケーションから Windows フォーム アプリケーションに変更します。