[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2007/07/20(Fri) 20:24
投稿者名:はる
Eメール:
URL :
タイトル:
プロセスIDはとれているのに、OpenProcessで0になる
FindWindowで、アプリケーションのキャプションでハンドルをとって
                If hHung = 0 Then
                    hHung = FindWindow(vbNullString, "サーバー設定")
                End If
アプリケーションの応答なし状態(IsHungAppWindow)
を3秒おきにチェックして、10回連続応答なし状態(IsHungAppWindow)
=30秒間応答なし
であるとき、TerminateProcessで強制終了させています
通常はうまくいっているのですが、ときたまうまくいかないケースが発生します
プロセスIDはとれているのに、OpenProcess で、0になります
どなたか同じような経験がある方おいでにならないでしょうか?

            Call GetWindowThreadProcessId(hHung, lngProcessID)
           'lngProcessIDは値が取れている
            hProcess = OpenProcess(SYNCHRONIZE Or PROCESS_TERMINATE, 0, lngProcessID)
            If hProcess = 0 Then  ’<−−ここが0になる
                DoEvents
                tmrClientCheck.Enabled = True
                Exit Sub
            End If
            Call TerminateProcess(hProcess, 0)
            Call CloseHandle(hProcess)

投稿時間:2007/07/20(Fri) 21:58
投稿者名:オショウ
Eメール:
URL :
タイトル:
Re: プロセスIDはとれているのに、OpenProcessで0になる
> 通常はうまくいっているのですが、ときたまうまくいかないケースが発生します
> プロセスIDはとれているのに、OpenProcess で、0になります
> どなたか同じような経験がある方おいでにならないでしょうか?

  はい。遭遇しております。

  WinXP Pro SP2 では、お目にかかったことは今のところ無いのですが
  そのプログラムを、Vistaに持っていくと、かなりの頻度で、ゼロが
  返ってくることがありました。

  権限の誤認?にひっかかっているのか・・・

  Vista特有?と思ってました。現在、エージング中・・・
  何か解ればよいのですが・・・

※ 全く回答なっていなくて申し訳ない。

以上。

投稿時間:2007/07/20(Fri) 22:07
投稿者名:はる
Eメール:
URL :
タイトル:
Re^2: プロセスIDはとれているのに、OpenProcessで0になる
> > 通常はうまくいっているのですが、ときたまうまくいかないケースが発生します
> > プロセスIDはとれているのに、OpenProcess で、0になります
> > どなたか同じような経験がある方おいでにならないでしょうか?
>
>   はい。遭遇しております。
>
>   WinXP Pro SP2 では、お目にかかったことは今のところ無いのですが
>   そのプログラムを、Vistaに持っていくと、かなりの頻度で、ゼロが
>   返ってくることがありました。
>
>   権限の誤認?にひっかかっているのか・・・
>
>   Vista特有?と思ってました。現在、エージング中・・・
>   何か解ればよいのですが・・・
>
> ※ 全く回答なっていなくて申し訳ない。
>
> 以上。
ありがとうございざいます
うまくいったりいかなかったりなので、
原因の解決にはなっていませんが
AppKiller.dll
を使って回避はしました

原因がわかればすっきりしますが...