DOBON.NET DOBON.NETプログラミング掲示板過去ログ

起動EXEについて

  • 題名: 起動EXEについて
  • 著者: pi
  • 日時: 2008/12/12 15:46:51
  • ID: 23567
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[VB.NET]
分類:[.NET]

指定したEXEが立ち上がっているか確認したいのですが
プロセス関連のサイトをみても該当するものがありませんでした。

if ProcessStart("c:\test\test.txt").HasExited = True
'起動しているのでスルー
else
Process.Start("c:\test\test.txt")
end if

上記の方法で行うと2重起動になってしまいます。
起動していない時だけ起動させたいです。
■No23567に返信(piさんの記事)

「多重起動防止 VB.NET」で検索
■No23571に返信(やじゅさんの記事)
> ■No23567に返信(piさんの記事)
>
> 「多重起動防止 VB.NET」で検索
>

やじゅさん、返信ありがとうございます。

strnameにファイル名を入れてます。
起動してるにもかかわらず起動してしまいます。
ファイル名の設定がいけないのでしょうか?


'Mutexを確保できるか判断し、blnMutexに結果を格納する
_mutex = New System.Threading.Mutex(False, strname)

' 実行ファイルを指定して実行
If _mutex.WaitOne(0, False) = False Then
MessageBox.Show("表示")
Else
Process.Start(strpath)
End If
■No23577に返信(piさんの記事)
> strnameにファイル名を入れてます。
> 起動してるにもかかわらず起動してしまいます。
> ファイル名の設定がいけないのでしょうか?

Sub Mainに書いてますでしょうか?

http://smdn.invisiblefulmoon.net/ikimasshoy/dotnettips/tips034.html
■No23580に返信(やじゅさんの記事)
> ■No23577に返信(piさんの記事)
>>strnameにファイル名を入れてます。
>>起動してるにもかかわらず起動してしまいます。
>>ファイル名の設定がいけないのでしょうか?
>
> Sub Mainに書いてますでしょうか?
>
> http://smdn.invisiblefulmoon.net/ikimasshoy/dotnettips/tips034.html

やじゅサンのサイトを参考にそのままコピペして実行させ、
Excelを2つ起動しましたが動作しませんでした・・・。


あとSub Main には書いていません。。。

ファイル名・ファイルパスを読み取って関数を作成してそこで行うようにしました。

指定したファイル名がファイルパス上で動作していたら
「起動中」とメッセージ表示させたいんですが
主旨と違うのでしょうか?
■No23582に返信(piさんの記事)

> 主旨と違うのでしょうか?

申し訳ない、私が質問の意図を読み間違えたようですm(_ _)m

起動しているプロセス一覧を取得して、その中にあれば起動しないように
すればいいのかなー

既に起動中のアプリを検出する方法
http://forums.microsoft.com/msdn-ja/showpost.aspx?postid=1702290&siteid=7
  • 題名: Re[6]: 起動EXEについて
  • 著者: pi
  • 日時: 2008/12/15 14:37:26
  • ID: 23593
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
ありがとうございます。

上記URLを参考にプロセス情報が取得できました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板