• ベストアンサー

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

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

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

  • ベストアンサー
  • yuizuian
  • ベストアンサー率42% (103/245)
回答No.1

ニアピンですね。 App.PrevInstanceで起動しているかどうかが返ってきますので、 If App.PrevInstance Then  MsgBox "すでに「" & App.Title & "」は起動されています。",vbExclamation  End End If という感じになります。

kukkychan
質問者

お礼

ありがとうございます(^O^)/ もうひとつできれば教えていただきたいのですが・・。 すでに起動されている場合 メッセージを表示するのではなく、 すでに起動されている画面をアクティブにする方法 (最小化されていた場合通常に戻すなど) があれば教えていただきたいのです。 よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.2

最初に起動したウインドウハンドルを取得すれば SetForegroundWindow()API等を使って アクティブにできます。 参考になるかどうかはわかりませんが www.vbvbvb.comとか参照してみてはいかがでしょうか?

kukkychan
質問者

お礼

ありがとうございました。 できました(^^)v

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 二重起動禁止について

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

  • 二重起動の禁止

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

  • 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と同じ方法でもこの場合は、二重起動を防ぐことができません。 他によい方法がある、ここがおかしいんじゃないの?等ありましたら、教えてください。 よろしくお願いします。

  • VB.Netの勉強をしています。

    VB.Netの勉強をしています。 表現が正しくないかもしれませんが VB6.0では、RaiseEventで発生させたイベントをWithEventsで指定した変数に発生させる事が 出来たと思います。 VB.Netで同じことをいたいのですが、どのように実現したらよいかわかりません。 どなたか、教えていただけませんでしょうか。 具体的には  開いているフォーム、ロードしたコントロールすべてに、イベントを通して、更新通知を  知らせてあげたいのですが。  プロパティーを使用する方法等も考えましたが、イベントが綺麗かな~と思いまして。。。

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

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

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

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

  • IEの2重起動抑止

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

  • Delphiでコンポーネントをfunctionから参照するには

    Delphiで例えば、StringGridのCellsプロパティをeventで呼ばれる procedureではなく自分で作ったfunctionで参照したり,更新したりできる 簡単な方法がありますか?

  • VBAの、表形式で作ったサブフォームのコントロール方法

    表形式でサブフォームを作った後に、プロパティのレコードソースの内容(クエリ)を削除して(仕様変更の為に作り直しています)、 プロパティのイベントの読み込み時にイベントプロシージャーを指定してVBでSQL等を書いています。 SQLを呼び出し、Loopでレコードセットの内容をサブフォーム内のテキストボックスへ表示させる、等。 でも行数が指定できないので一番最後のデータ1行だけが表示されます… どうやったらサブフォームの総行数や、データを表示させる行の指定等の制御がVBで出来るのでしょうか? またはこれは不可能なのでしょうか? どなたかご回答いただけると幸いです。 よろしくお願い致します!

  • Accessでコントロールの印刷時拡張時に縦線を伸ばす方法を調べたら、

    Accessでコントロールの印刷時拡張時に縦線を伸ばす方法を調べたら、次のページがヒットしました。 http://support.microsoft.com/default.aspx?scid=kb;ja;286247&Product=accJPN 4.[表示] メニューの [デザインビュー] をクリックし、レポート プロパティの [イベント] タブの "開く時" プロパティに次のイベント プロシージャを設定します。 と書いてあります。 「レポート プロパティの [イベント] タブの "開く時" プロパティ」は見つけましたが、そこにイベントプロシージャを設定するというのがどうすればよいのかわかりません。 具体的な方法をご教示ください。よろしくお願いします。

このQ&Aのポイント
  • MFC-L3770CDWの印刷で、紙の右側に黒色が出る問題が発生しています。
  • Windows11を使用してMFC-L3770CDWを無線LANで接続しています。
  • アナログ回線を使用しています。
回答を見る