• ベストアンサー

Mutexでのexeの重複実行

Mutexでのexeの重複実行 実行プログラムにMutexを使用して重複起動を防止しました。 目的は同じプログラムをn個実行はするが、同時実行は許可したくないためです。 この場合exeはいくつでも起動できるのでしょうか? またexeの実行順序はどうなるのでしょうか?(起動した順なのか、Mutexの解放を検知した順なのか) 本来の目的とは違うのかもしれませんが、このような使用もありかな?と考えました。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

>重複起動を防止 普通に考えるとMutexを取得できない場合はプロセスを 終了するように作っていると考えます。そうでないなら、 プロセスは何個でも起動します。よって、「重複起動を 防止している」とは言えませんね。 >同時実行は許可したくない Mutexを取得できるまでWaitFor~しているなら、同時期に 活動できているプロセスは1個だけです。但し、先に述べた ように多重起動を防御していないならプロセス自体は何個 でも起動します。 Mutexを獲得したプロセスがMutexを解放したことにより、 次にMutexを獲得できたプロセスが活動状態になります。 ただ、待ち合わせ中のどのプロセスが次のMutexを受け取れる かは分かりません。恐らく、待ち行列に登録した順だと思い ますが、明確な仕様は分かりません。

papope
質問者

お礼

ご回答いただきまして、ありがとうございます。 プログラム自体はMutexを取得できない場合には待つように作成しております。 待ち行列に登録した順だと楽なのですが・・・ まぁ、どのような順番で実行されても、大丈夫なように作成することも可能 なので、考えて見ます。(どのような順番で実行しても、起動した順のように データを処理することが可能という意味です) ありがとうごじざいます。

関連するQ&A

  • actmachine.exeとはなんですか?

    インターネットセキュリティでactmachine.exeというプログラムがインターネットにアクセスに行くのが検知されました。このプログラムは何でしょうか?許可しても大丈夫でしょうか?

  • 実行形式(exe)のアイコンを変えたい

    WinXpでPC使用しております。 実行形式(exe)ファイルのアイコンを変えたい時は、ショートカットを作成し、これをディスクトップ上にコピーし、画面上からクリックしてプログラム起動をしていたのですが。 実行形式(exe)ファイル本体のアイコンを変更することは可能なのでしょうか。 可能な場合はどうすれば良いのか、教えて下さい。

  • exeファイルが実行できない

    あらゆるアプリケーションを起動できなくなってしまいました。症状は下記の通りです。何かご存知の方がいらっしゃいましたら、教えていただけると幸いです。 ●exeファイルを実行しようとすると、必ず「ファイルを開くプログラムの選択」ダイアログが出てくる。 ●例外的に実行できるのは、ウィルスバスターとエクスプローラのみ。 ●システムの復元もGUIから実行できないので、セーフモードで起動してコマンドプロンプトから実行したが、効果なし。 ●ウィルス・スパイウェアは現在は検出されない。 ●下記のURLの「トラップにひっかかってプログラムを実行できなくなりました」に解説されている、レジストリの編集(exeファイルに関する関連付けの削除)を行ったが、再起動すると元に戻ってしまう。 http://homepage2.nifty.com/winfaq/wxp/trouble.html#1468 つまり、regeditでHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExtsを展開し、exeのキーを削除したが、再起動するとexeのキーが再び現れており、プログラムは実行できない。 心当たりとしては、数日前、ウィルスバスターでトロイの木馬やその他のスパイウェアが数個検出されたことがあります。そのときは名前をメモせずに、ファイルを削除してしまいました。その後、現在の症状が起こりました。

  • タスクで30分ごとにプログラムを実行したい

    タスクマネージャーでPCが起動している間は30分ごとに、 メモリ解放の小さなプログラム(empty.exe)を実行させたいのですが、 どうやればいいのでしょうか?

  • exeファイルの自動実行

    Linux Mint に wine をインストールして、Windowsの実行ファイルを実行させています。 具体的には、exeファイルを右クリックして、 [別のアプリで開く]-[Wine Windows Program Loader]を選択 で起動しています。 これを、例えば、拡張子.txtのテキストファイルをクリックすると、馴染みのエディタが起動するようにしたいのですが、設定の方法がわかりせん。 なお、exeファイルはインストールするタイプではなく、実行ファイルだけで完結したWindowsで動いていたプログラムです。

  • CD-ROMのexeファイルが実行できません!

    CD-ROMのexeファイルを開こうとしたところ、 このようなエラーが出て実行することができません。 Director Player 6J このプログラムを起動するには、最低3MBの使用可能な仮想記憶が必要です。 メモリは十分にありますし、 コントロールパネルから仮想記憶を増やしたりもしてみました。 また、最新版のDirect Xも入れてみたのですが、 やはり実行することができませんでした。 おそらく先日パソコンの整理をした際に 何か必要なファイルを消してしまったのでは。。 これは大変まずいです。 よろしくお願いします!

  • exeファイルが開きません

    インターネットからダウンロードしたファイルを解凍して出来た拡張子exeのファイルを右クリック→プロパティ→全般で表示される部分に ファイルの種類: アプリケーション プログラム:   (空欄)     [変更] のように変更ボタンがあり、その変更ボタンを押して出てきた「ファイルを開くプログラムの選択」という所で、何を思ったかメディアプレイヤーを設定してOKを押してしまい、それ以来、PC内のどの「exe」ファイルも開けなくなりました。 試行錯誤して、なんとか右クリック→別のユーザーとして実行→「許可されていないプログラム~~~」のチェックを外せば起動できることが分かったのですが、どうにも不便です。ウイルスソフトとかも起動のたびにそうやって立ち上げなくてはならないし・・・。 [スタート]-[ファイル名を指定し実行] から command を実行します。 次のコマンドを実行します。 C:\>assoc .exe=exefile C:\>ftype exefile="%1" %* のやり方でも直りません・・・ あまりパソコンに詳しくないので本当困ってます。

  • 'wininit.exe' を読み込みまたは実行で きませんのエラー

    起動時に以下のようにメッセージが出ます。 「wininit.exe 指定されたデバイスパス又はファイルへの アクセスは拒否されました。」 「WIN.INIに指定されてるwininit.exeを読み込み又は 実行できません。 ファイルがあるか確認してください。又はWIN.INIファイルの指定を 削除してください。」 win.iniには《load=c:\windows\system\wininit.exe》となっており、 c:\windows\system\wininit.exeファイルは有ります。 それをダブルクリックすると《プログラム開始エラー》のタイトルで アイコンがビックリマークのダイアログが出ます。 前回の使用時にはプログラムを何もインストールをしていませんしDLLなどの ファイルを削除した記憶はありません。 回復の方法をご存知の方、よろしくご教示ください。お願いします。

  • VBで実行中のEXEファイルの情報を取得したい

    WindowsXPでVB6.0でプログラムを組んでますが、その中であるEXEファイルを起動するようにしています。しかし、そのEXEが起動している場合は二重起動を避けるようにしたいのです。 使っているPCで起動されているいくつかのEXEから目的のEXEが起動しているかどうかを知りたいです。 FindWindowを使うには開いているファイル名まで変数の中に渡さなければならないため使えません。(開いているファイル名は不明として下さい) タスクマネージャーの「プロセス」タブのイメージ名に出てくるexeファイル名を取得できればいいのですが、方法をご存知の方おられませんか?

  • 「GDI.EXEが実行できない」で起動できません。

    Windows98SEを使用しています。 起動しようとすると、「GDI.EXEが実行できない」とエラーがメッセージが出ました。 OSのCD-ROMから「extract」コマンドで、「GDI,EXE」を解凍しました。 しかし、それでもエラーは無くなりません。 べつのPCから「GDI.EXE」をコピーしましたが、改善されません。 レジストリーの修復も試みましたがだめでした。「scanreg.exe」 どうすればいいでしょうか?