2

innosetupを介してプログラムをインストールしています。実際のプログラムを実行するメインのexeファイルが1つありますが、常にバックグラウンドで実行されている他のexeファイルをいくつかインストールします。

main.exeを初めて実行すると、この他のexeが起動します。他のexeファイルはいつでも実行できますが、実際には必要です。ただし、main.exeがタスクマネージャなどを介して停止された場合、other.exeは実行を継続します。other.exeが実行されている場合、ユーザーはmain.exeを実行できません。この動作をどのように変更できますか?

編集

innosetupとは関係がないようですので、答えで提案されているルートに行く必要があります。

もう一度編集 する問題は、最終的にWindowsがmain.exeがother.exeを開始するのを見て、それをサブプロセスと見なすことでした。main.exeの外でother.exeを開始する方法を見つけることが最終的に解決策でした

4

1 に答える 1

1

私が正しく理解していれば、2つ(またはそれ以上)のプログラム(EXE)があります。MAIN.EXEが最初に起動すると、OTHER.EXEが起動しますが、これは正しいことです。OTHER.EXEが最初に起動するか、実行中でMAIN.EXEが停止している場合、MAIN.EXEはOTHER.EXEが停止するまで再起動しません。あれは正しいですか?その場合は、MAIN.EXEとOTHER.EXEの両方を変更する必要があります。MAIN.EXEでは、OTHER.EXEを確認し、停止するか、MAIN.EXEを開始する前にOTHER.EXEを停止するようにユーザーに指示する必要があります。起動時のOTHER.EXEで、MAIN.EXEを確認する必要があります。実行されていない場合は、起動するか、OTHER.EXEを起動する前に起動するようにユーザーに指示してください。

他のコメントを読んだ後、私の元の答えは正しくないと思います。2つのプログラム(APPLICATION.EXEとSERVICE.EXE)は本質的にミューテックスを共有せず、同時に実行することを自動的に妨げられません。SERVICE.EXEの実行中にAPPLICATION.EXEが実行されない理由と、どのようなエラーが返されるかを確認する必要があります。それはあなたが何をする必要があるかを決定するのに役立つかもしれません。おそらく、SERVICE.EXEとAPPLICATION.EXEを変更する必要があります。

于 2012-04-06T18:12:41.533 に答える