2014年05月29日
Shell_NotifyIcon がエラー 0 を返す
PC起動時に動き出すプログラムを開発しているが、通知エリア(昔はタスクトレイとも言っていた) にアイコンを登録するために Shell_NotifyIcon API を使用するが、PC起動時の忙しい時には、結構失敗していることがわかった
http://nyaruru.hatenablog.com/entry/20071008/p3 でも紹介されていたが、 API が FALSE を返したときに GetLastError() でエラーコードを取得すると、 ERROR_TIMEOUT (1460) が返ると説明されているが、自分のプログラムのログを調べると、ERROR_SUCCESS (0) が返ってきており、よくわからない状況となっている
実際上、想像するに、アプリケーション全体がハングアップするのを防ぐ目的で、タイムアウトしているというのが起きているのは間違いないだろうと思っているのだが、 Windows 7 になってからなのか、ERROR_SUCCESS が返ってきているのに違和感を覚えている
いずれにせよエラーには違いないのだろうから、リトライするなどの処置が必要とは思うが、アイコンの変更だけで何秒も待たさせるのも嫌な話だ
今のところは適当に5回程度リトライしてもだめなら、ログを出して無視するという対処にしてあるが、こういうのが解決することはあるのだろうか?
![](https://www27.a8.net/svt/bgt?aid=140214251868&wid=001&eno=01&mid=s00000000018015056000&mc=1)
![](https://www15.a8.net/0.gif?a8mat=2BHA0B+ECS9V6+50+2HN0U9)
http://nyaruru.hatenablog.com/entry/20071008/p3 でも紹介されていたが、 API が FALSE を返したときに GetLastError() でエラーコードを取得すると、 ERROR_TIMEOUT (1460) が返ると説明されているが、自分のプログラムのログを調べると、ERROR_SUCCESS (0) が返ってきており、よくわからない状況となっている
実際上、想像するに、アプリケーション全体がハングアップするのを防ぐ目的で、タイムアウトしているというのが起きているのは間違いないだろうと思っているのだが、 Windows 7 になってからなのか、ERROR_SUCCESS が返ってきているのに違和感を覚えている
いずれにせよエラーには違いないのだろうから、リトライするなどの処置が必要とは思うが、アイコンの変更だけで何秒も待たさせるのも嫌な話だ
今のところは適当に5回程度リトライしてもだめなら、ログを出して無視するという対処にしてあるが、こういうのが解決することはあるのだろうか?
![](https://www15.a8.net/0.gif?a8mat=2BHA0B+ECS9V6+50+2HN0U9)
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/2459192
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック