- PR -

VB.NET での2重起動防止について

1
投稿者投稿内容
Swd
会議室デビュー日: 2003/07/08
投稿数: 8
投稿日時: 2003-07-08 18:02
現在2重起動を防止するために、以下のコードにて行っています。

--------------------------------------------------------------------------
If (UBound(Diagnostics.Process.GetProcessesByName _
  (Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0) = True Then
    Exit Sub
End If
--------------------------------------------------------------------------

しかし、上記の"Diagnostics.Process.GetCurrentProcess.ProcessName"部分にて
エラーが発生する場合があるとの報告を受けました。
エラー時のメッセージは、
"プロセス パフォーマンス カウンタは無効にされているため、要求された情報を実行できません。"

という内容でした。

上記のエラーがなぜ発生するのかについて、
知っておられる方がいればぜひ教えていただければと思います。

以上宜しくお願い致します。
未記入
会議室デビュー日: 2003/01/24
投稿数: 2
投稿日時: 2003-07-08 21:41
「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance」のレジストリキー内の「Disable Performance Counters」の値が1になっていると、パフォーマンスカウンタが無効になり、上記の部分でInvalidOperationExceptionが発生してしまいます。

なぜ「Disable Performance Counters」の値が1になってしまうのか(なっているのか)はわかりませんが、0に変更すると例外は発生しなくなります。

私も以前この症状に悩まされました・・・
Swd
会議室デビュー日: 2003/07/08
投稿数: 8
投稿日時: 2003-07-08 22:02
返信ありがとうございます。
掲題の件については解決することができました。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)