指定したファイルの2重起動を防ぐには?


おさるMAX  2004-01-08 01:44:08  No: 111114  IP: [192.*.*.*]

いつもお世話になっております。
VBからVISIOのファイルを起動する処理を行っています。
起動には、Shell関数を用いて起動させています。

ボタンを押すごとに起動するのですが、これだと2重起動が防げません。
指定したファイルが起動中かどうかを調べるにはどうしたら良いのでしょうか?
また他の回避策をご存知の方、ご教授お願いできますでしょうか?

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

編集    削除
izuMin  2004-12-15 02:06:01  No: 111115  IP: [192.*.*.*]

プロセスをコントロールできると
2重起動を防げますよ。
    Private Sub Form1_Load(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load

        Dim insProcess As Process() 'プロセスインスタンス
        Dim strProcessName As String  'プロセス名

        strProcessName = Process.GetCurrentProcess.ProcessName
        insProcess = Process.GetProcessesByName(strProcessName)


        If UBound(insProcess) > 0 Then
            MsgBox("すでに起動しています")
            End
        End If
    End Sub

編集    削除
聖 羅樹  URL  2004-12-15 02:37:35  No: 111116  IP: [192.*.*.*]

izuMinさんの方法はVB.NETでの自分自身の二重起動の防止方法ですので、
おさるMAXさんの質問とは少し違うと思います。

Shell関数を使っているということから、VB6だと思うのですが、
どのようにしてVISIOのファイルを起動しているのですか?
Visio.exeへの引数としてファイル名を渡しているのであれば、
Visio側が二重起動防止をしてくれるはずですが。

私が試した所、同じファイルを2回以上Shellで起動しようとしても、
最初に開いたVisioの画面にフォーカスが当たるだけで、
2つ以上Visioが開いたりはしませんでした。

編集    削除