起動時にTrayIcon1.Visibleのエラー


Fusa  URL  2010-01-06 20:18:13  No: 36747

こんにちは。あけましておめでとうございます。

D2007を使って常駐アプリを作っています。

プロジェクトソースに
  Application.ShowMainForm := False;
このように記述して、

みえないメインフォームを用意して
そのフォーム上にTrayIconを配置して
タスクトレイだけで動いているように見せています。

スタートアップに登録しています。

WindowsVista環境では
起動時に立ち上がりが遅いのか、
非常にごくまれに、

---------------------------
アプリケーション エラー
---------------------------
EReadError がモジュール Project1.exe の 00018F67 で発生しました。
TrayIcon1.Visible の読み込み中のエラー : シェル通知アイコンが作成できません.
---------------------------
OK   
---------------------------

このようなエラーが発生して終了せざるおえなくなります。

WindowsXPでは起きたことがないです。

発生頻度がまれなのと、起動時なのでデバッグ実行ができないので
どのように回避するのがいいのか、よくわからないのですが
おそらくは、タスクトレイが生成される前にタスクトレイにアイコンを
登録しにいって、エラーが出ているのですが
だからといって、起動遅延させれば済むという問題でもない気がします。

この問題のよりすっきりとする対処方法をご存知でしたら、
教えてください。

よろしくお願いします。


たぬ吉  2010-01-06 23:34:14  No: 36748

回答ではありませんが、これが関係しているんでしょうか?
http://ddev.blog46.fc2.com/blog-entry-4.html


Fusa  2010-01-07 00:35:33  No: 36749

なるほど、、他のコントロールを使いましょうか。

標準機能なのに、残念ですね。
D2009や2010では解消されているのかな。


たぬ吉  2010-01-07 23:36:30  No: 36750

昨日提示したサイトの内容はXPに関するものでした。
FusaさんはXPではOKで、VistaでNGということはShell_NotifyIconの
タイムアウトとは関係ないかもしれません。
僕が探した範囲ではVistaでの仕様が見つけれませんでした。
ちゃんと確認せずレスしてすみません。

TrayIconについては、タイムアウトという前提であればD2009では修正
されていませんでした。D2010はもっていないのでわかりません。

まずは、原因を調べるためにRAD上ではなくデバック用のコードを埋め
込んでエラーステータスを確認するのはいかがでしょうか。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加