• ベストアンサー

二重起動禁止について

VB6から.NETへ移行してきました。 VB6の時システムの二重起動を禁止するのは、プロパティの値を見るだけでしたが、.NETでの方法がわかりません。 どのようにすれば、二重起動が禁止できるのでしょうか?

  • mm_mm
  • お礼率16% (4/24)

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

  • ベストアンサー
noname#5584
noname#5584
回答No.1

> .NETでの方法がわかりません。 > どのようにすれば、二重起動が禁止できるのでしょうか? Mutex (各プロパティ毎に生成される一意なインスタンスのようなもの?よくわかりませんが・・・)を使えばよいようです。(参考URL) ※ VB6.0の「If App.PrevInstance Then」をアップグレードウィザードで変換すると、「If UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0 Then」というコードが生成されますが、このコードではWindowクラス等の判定ができないので、お奨めできません。(別のプロセスで同名のWindowが開いていると誤動作する可能性があります)

参考URL:
http://dobon.net/vb/dotnet/process/checkprevinstance.html

その他の回答 (1)

noname#5584
noname#5584
回答No.2

× Mutex (各プロパティ毎に........ ○ Mutex (各プロセス毎に........ m(_ _)m

関連するQ&A

  • 二重起動の禁止

    If App.PrevInstance = True Then End End If このコードで二重起動を禁止しているのですが、 たまに二重起動してしまいます。 確実に禁止できる方法はありませんか? (VB6)

  • 二重起動禁止にする理由とは

    プログラム(アプリケーション)の二重起動を禁止にする処理があるようですが、禁止にしなければならない理由とは、どういったものがあるのでしょうか?

  • 二重起動チェックについて

    WindowsServer2003でターミナルサービスを使ってシステムを構築しています。 一応GetProcessesByNameを使用して二重起動チェックを行っていたのですが、この場合だと他のユーザーが別のPCから同じアプリケーションを起動した際に二重起動チェックに引っかかってしまいます。 ターミナルサービス上でユーザー毎にアプリケーションの二重起動チェックは出来ないのでしょうか。 開発言語はVB.NET2003です。 よろしくお願いします。

  • IEの2重起動抑止

    VBでのシステム開発でIEを起動するのに2重起動を抑止するようにしなければなりません。また、そのボタンから起動されたIEのみ2重起動抑止の対象とし、それ以外の場所から起動されたIEが上がっていてた場合はボタンを押せばIEが起動するといった方法がどうしたらいいのかわかりません。ご存知の方がいたら教えてください。よろしくお願いします。

  • プログラム2重起動処理の方法

    こんにちは。 VBで2重起動を阻止したいのです。 Appのプロパティ 「PrevInstance」 を使用すればいいような気はするのですが・・・ いまいち使用方法がわかりません 「Load イベント プロシージャ内で PrevInstance プロパティを参照する」 とヘルプにはかいてありますが、具体的にどのようなソースになるのでしょうか。よろしくお願いします。

  • VB.NETでの多重起動禁止設定方法

    VB.NETでの多重起動禁止設定方法が分かりません。 ヒント、サンプルなどありましたら教えてください。

  • IEの2重起動を禁止したい

    現在、イントラをIEを使用して開発をしています ある業務単位に2重起動を禁止したいのですが、皆さんどのように対応しているのでしょうか? ヒントがありましたら、よろしくお願いします ※Windows 7(IE8)とVista(IE7)を使用しています ※今は、「LocationURLを探して、該当アドレスがあれば起動しない」をVBScriptにて作成しましたが、ショートカットを素早くクリックすると複数起動してしまいます 何かヒントをお願いします

  • vb.net2003での二重起動防止について

    度々お世話になっています。 vb.net2003でアプリケーションを作りました。 そこで二重起動防止を行いたい為に、Process.GetProcessesByName メソッドを使用して行いました。 二重起動防止は出来ているのですが、ターミナルサービスでリモートデスクトップ接続を行い、同一ユーザーの二重起動防止はしたいですが、1ユーザーでも使用していたら 別ユーザーで起動できません。 何か良い方法はありませんでしょうか? 出来れば解説しているサイトがあれば教えて下さい。

  • VB5.0 二重起動防止

    OSWin98/VB5.0を使用しています。同一のシステムの重複起動を防止したいのです。過去ログの、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=644390 を参照し、 http://www.vbvbvb.com/jp/gtips/1101/gCreateToolhelp32SnapshotTh32csSnapprocess.html のサンプルを参考にし、実行中のプロセスに同一のものがあれば、複数起動と判断するようにしました。 しかし、どうしても二重起動されてしまいます。 例1)A.exeを起動、A.vbpをデバッグで実行    →二重起動を検出し、後者は起動されない 例2)A.exeを起動、A.exeを起動    →二重起動が検出されず、後者も起動されてしまう App.PrevInstanceで判断できると思うのですが、例1と同じ方法でもこの場合は、二重起動を防ぐことができません。 他によい方法がある、ここがおかしいんじゃないの?等ありましたら、教えてください。 よろしくお願いします。

  • 二重起動チェックについて

    Solarisで、プロセスの二重起動チェックを行いたい のですが、システムコールの使用など簡単に行える 方法はないでしょうか? よろしくお願い致します。

専門家に質問してみよう