こんにちは。あけましておめでとうございます。
D2007を使って常駐アプリを作っています。
プロジェクトソースに
Application.ShowMainForm := False;
このように記述して、
みえないメインフォームを用意して
そのフォーム上にTrayIconを配置して
タスクトレイだけで動いているように見せています。
スタートアップに登録しています。
WindowsVista環境では
起動時に立ち上がりが遅いのか、
非常にごくまれに、
---------------------------
アプリケーション エラー
---------------------------
EReadError がモジュール Project1.exe の 00018F67 で発生しました。
TrayIcon1.Visible の読み込み中のエラー : シェル通知アイコンが作成できません.
---------------------------
OK
---------------------------
このようなエラーが発生して終了せざるおえなくなります。
WindowsXPでは起きたことがないです。
発生頻度がまれなのと、起動時なのでデバッグ実行ができないので
どのように回避するのがいいのか、よくわからないのですが
おそらくは、タスクトレイが生成される前にタスクトレイにアイコンを
登録しにいって、エラーが出ているのですが
だからといって、起動遅延させれば済むという問題でもない気がします。
この問題のよりすっきりとする対処方法をご存知でしたら、
教えてください。
よろしくお願いします。
回答ではありませんが、これが関係しているんでしょうか?
http://ddev.blog46.fc2.com/blog-entry-4.html
なるほど、、他のコントロールを使いましょうか。
標準機能なのに、残念ですね。
D2009や2010では解消されているのかな。
昨日提示したサイトの内容はXPに関するものでした。
FusaさんはXPではOKで、VistaでNGということはShell_NotifyIconの
タイムアウトとは関係ないかもしれません。
僕が探した範囲ではVistaでの仕様が見つけれませんでした。
ちゃんと確認せずレスしてすみません。
TrayIconについては、タイムアウトという前提であればD2009では修正
されていませんでした。D2010はもっていないのでわかりません。
まずは、原因を調べるためにRAD上ではなくデバック用のコードを埋め
込んでエラーステータスを確認するのはいかがでしょうか。
ツイート | ![]() |