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

解決


歩如  2008-11-05 22:32:39  No: 32441

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

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

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

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


D2007  2008-11-05 23:25:17  No: 32442

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


歩如  2008-11-06 06:23:55  No: 32443

ありがとうございます。

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

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


歩如  2008-11-07 18:37:56  No: 32444

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

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

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


igy  2008-11-07 18:49:46  No: 32445

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

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


ofZ  2008-11-07 21:21:51  No: 32446

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

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

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


歩如  2008-11-10 21:14:32  No: 32447

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

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-11 06:18:17  No: 32448

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

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


歩如  2009-02-03 17:24:14  No: 32449

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


igy  2009-02-04 01:46:25  No: 32450

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

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

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

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

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

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


めんどくせぇなら  2009-02-04 08:03:46  No: 32451

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


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

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






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