tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル重複して起動しない様にする。
記事No11328
投稿日: 2014/10/17(Fri) 18:23
投稿者たちばなん
Formを使ってプログラム「AAA.exe」を作りました。
単独で動く実行ファイルです。
(ヘルプのサンプル「Hellow World」に毛が生えた様な幼稚で単純な物です。)

このプログラムを重複して起動させたくないので、色々調べたところ、
「既に同じプログラムが起動していれば、後から起動したプログラムは終了する」の方法は見つけたのですが、

そうでは無くて、

「既に同じプログラムが起動していれば、先に起動していたプログラムを強制終了して、
後から起動した方を有効にする」がやりたいのです。

この方法がなかなか見つけられなくて、困っています。

どうか、アドバイスお願いします。

VB.2008 で使います。
VB歴は5年くらいですが、スキルは初心者+α(ネットで見つけたコードを意味も判らず切り貼りする程度)です。

[ツリー表示へ]
タイトルRe: 重複して起動しない様にする。
記事No11329
投稿日: 2014/10/18(Sat) 08:15
投稿者花ちゃん
> 「既に同じプログラムが起動していれば、先に起動していたプログラムを強制終了して、
> 後から起動した方を有効にする」がやりたいのです。

下記ではだめですか?
http://www.hanatyan.sakura.ne.jp/vb2005/vb2005application05.htm

起動時に、指定の EXE が起動しているか調べ、起動していれば終了させる。

[ツリー表示へ]
タイトルRe^2: 重複して起動しない様にする。
記事No11333
投稿日: 2014/10/20(Mon) 15:28
投稿者たちばなん
ありがとうございます。

出来ました。

下記の様になりました。

    Sub Check_Jufuku() '自身と同じプログラムが起動している場合、先に起動している方を終了させる
        Dim hProcess As System.Diagnostics.Process = System.Diagnostics.Process.GetCurrentProcess()
        Dim localByName As Process() = Process.GetProcessesByName(hProcess.ProcessName)
        Dim p As Process
        For Each p In localByName
            If Not hProcess.Id = p.Id Then
                p.CloseMainWindow()
            End If
        Next
    End Sub

また宜しくお願いします。

[ツリー表示へ]