継承した foxpro (~shudder~) で書かれたプログラムがあります。
問題は、いくつかの COM コントロールが含まれていることです。2 つのコピーを開始すると、2 番目のコピーでエラーがスローされます。そこで、これをクリーンアップして、アクティブ コピーを前面に移動し、単一のインスタンスのみを許可できると考えました。
それは問題ありませんが、プログラムは別のモードで実行できるようにするコマンド ライン パラメーターを受け取ります。各モードで実行できるコピーは 1 つだけです。
1)
"program /bos"
"program /pos" = OK
2)
"program /pos"
"program /pos" = NOT OK
私が欲しいのはこれです
"program /pos"
"program /pos" - Bring currently running pos instance to the front.
"program /bos" - start a BOS instance.
"program /bos" - bring the bos instance to the front.
それが理にかなっていることを願っています。プログラムの実行中のインスタンスが pos または bos モードのどちらであるかを判断するためのエレガントな方法は何ですか。これにより、どのプロセスを前面に出すか、または要求されたモードで新しいコピーを開始するかを判断できます。
ここで必ずしも foxpro コードが必要というわけではありませんが、それはいいことですが。コンセプトは私が求めているものであり、それを達成するための Windows API 関数に関するいくつかのヒントも役立ちます。たとえば、実行中のプロセスのコマンド ライン オプションを特定できますか?