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

2003 SP1を入れてから・・・ 2重起動の判定方法について

分類:[.NET]

アプリケーションの2重起動の判定を.NET Tipsに記載されている通り、
下記の方法で行っておりました。

If UBound(Diagnostics.Process.GetProcessesByName( _
Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0 Then
'すでに起動していると判断する
MsgBox("多重起動はできません。")
'終了させるコードを書いてください
Application.Exit()
End If

が、2003SP1をインストールしてからは、
「'System.InvalidOperationException'のハンドルされていない例外がSystem.dllで発生しました。
追加情報:プロセスパフォーマンスカウンタは無効にされているため、要求された情報を実行できません。」
とエラーが発生してしまいます。
■No17311に返信(ヘナチョコさんの記事)
> アプリケーションの2重起動の判定を.NET Tipsに記載されている通り、
> 下記の方法で行っておりました。
>
> If UBound(Diagnostics.Process.GetProcessesByName( _
> Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0 Then
> 'すでに起動していると判断する
> MsgBox("多重起動はできません。")
> '終了させるコードを書いてください
> Application.Exit()
> End If
>
> が、2003SP1をインストールしてからは、
> 「'System.InvalidOperationException'のハンドルされていない例外がSystem.dllで発生しました。
> 追加情報:プロセスパフォーマンスカウンタは無効にされているため、要求された情報を実行できません。」
> とエラーが発生してしまいます。

それでどうかしたのでしょうか?ただのご報告?
どちらにしてもどこで例外が発生しているかを書いた方がいいですね。
GetProcessesByNameメソッドで例外が発生してそうですが。

わたしはMutexを使って2重起動防止をしますので、個人的にはあまり有用じゃないですが・・・。
■No17311に返信(ヘナチョコさんの記事
> 「'System.InvalidOperationException'のハンドルされていない例外がSystem.dllで発生しました。
> 追加情報:プロセスパフォーマンスカウンタは無効にされているため、要求された情報を実行できません。」
> とエラーが発生してしまいます

二重起動を禁止する
http://dobon.net/vb/dotnet/process/checkprevinstance.html

このTipのことですね。

とりあえずサポート技術情報にある方法を試してみてください。

Service Pack 3 適用後、いくつかのカウンタでパフォーマンスデータの収集が出来なくなる
http://support.microsoft.com/default.aspx?scid=kb;ja;436445

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