アイコントレイで正常終了するには

解決


歩如  2008-11-05 13:32:39  No: 32441  IP: 192.*.*.*

Delphi Q&A 150選 で登録されている  IconTray を使っているですが
どうやら終了時に Abnormal Program Terminate のエラーメッセージが
表示されます。

Delphi2007 WindowsVista で作成しているのですが
実行するPCは Windows2003Server です。

ちなみにWindows Vista 上ではこのエラーが発生しません。
同様にWindows XP でもエラー発生の確認ができません。

何か対応策や知っていることがあれば教えてください。

編集 削除
D2007  2008-11-05 14:25:17  No: 32442  IP: 192.*.*.*

Delphi2007なら[Samples]パレットの中に[TTrayIcon]があります。
そちらではだめですか?

編集 削除
歩如  2008-11-05 21:23:55  No: 32443  IP: 192.*.*.*

ありがとうございます。

「シェル通知アイコンが削除されません」というメッセージが
表示されます。

DelphiがインストールされているPC以外は
このメッセージが表示されるようです。

編集 削除
歩如  2008-11-07 09:37:56  No: 32444  IP: 192.*.*.*

いろいろ調べてみました
今のところ
WinXP SP2(1) と WinServer 2003 SP2(1) で発生していて
Vista SP1(1) と WinXP SP3(3) では発生していません。

()内の数字はチェックしたPCの台数です。

このような現象が起きている人っていませんか?

編集 削除
igy  2008-11-07 09:49:46  No: 32445  IP: 192.*.*.*

その現象は、歩如 さんが作成中のプログラムでのみ発生するのですか?
それとも、IconTray or TTrayIcon を使ったプログラム全てで発生
するのですか?

もし、歩如 さんが作成中のプログラムでのみで発生するのであれば、
ある程度、他の人が検証できるようなコードを提示してみるのはいかがですか?

編集 削除
ofZ  2008-11-07 12:21:51  No: 32446  IP: 192.*.*.*

> 「シェル通知アイコンが削除されません」というメッセージが
> 表示されます。

Shell_NotifyIcon(NIM_DELETE, 〜)で失敗している。

TrayIcon.Visible := False; を FormClose に入っていなければ入れてみるとか

編集 削除
歩如  2008-11-10 12:14:32  No: 32447  IP: 192.*.*.*

現状のチェック状況です。
これで何かわかりませんか?


WindowsVista SP1 CodeGear RAD Studio Delphi2007 で
DelphiQ&A  ConTray コンポーネントを使ったプログラムを実行
しましたが問題なく動作します。

このプログラムを別PCのWinServer2003 SP2 で動作させると
エラーメッセージが表示されます。
WindowsXP SP2 でエラー発生
WindowsXP SP3 にバージョンアップするとエラー発生がなく
SP3 上に VirtualPC を入れて再度 SP2 をインストールして
動作させると エラーが発生します。

指摘のとおり
DelphiQ&A の TrayIcon と Sampl の中の IconTray の両方を
試してみましたが、結果は同じでした。

プログラムはテストプログラムを作って試しています。
ボタンを2つフォームにおいて、ボタンイベントに
IconTray.Visible := true;  と  IconTray.Visible := false;  を
それぞれ記入します。

1つ目のボタンを押してタスクバーにアイコンが表示され後
2つ目のボタンを押すとエラーメッセージがでます。

コンパイル、リンクの設定等でなにか問題があるのでしょうか?
それとも windows の SP のバージョンで違ってくるのでしょうか?

最終的に作ったプログラムは WinServer2003 で動作させたいのですが
現在 WinServer2003 の SP3 は無いようなので現状では動作
させる方法がみつかりません。

すみませんがよろしくお願いします

編集 削除
igy  2008-11-10 21:18:17  No: 32448  IP: 192.*.*.*

原因は、これかもしれません。

SDK32: 通知領域にアイコンが登録されないことがある
http://support.microsoft.com/default.aspx?scid=kb;ja;418138

編集 削除
歩如  2009-02-03 08:24:14  No: 32449  IP: 192.*.*.*

解決できないということで
今回は終了します。

編集 削除
igy  2009-02-03 16:46:25  No: 32450  IP: 192.*.*.*

>解決できないということで

SDK32: 通知領域にアイコンが登録されないことがある
http://support.microsoft.com/default.aspx?scid=kb;ja;418138



>この動作を考慮したアプリケーション側での対処としては、以下のようなものが考えられます。

以降に対処法がありますので、

>Delphi Q&A 150選 で登録されている  IconTray

にソースがあるなら、対応可能かもしれませんよ。

編集 削除
めんどくせぇなら  2009-02-03 23:03:46  No: 32451  IP: 192.*.*.*

ここ  ttp://www29.atwiki.jp/katochin/  とか
ここ  ttp://okapony.hp.infoseek.co.jp/  とかのコンポーネント使えばえぇ。
どっちも、igy さん紹介の「SDK32: 通知領域にアイコンが登録されないことがある」に
対応しているはずじゃけんのぅ。

編集 削除