問題タブ [notifyicon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2505 参照

c# - 通知アイコンがクリックされたときの交互の表示/非表示ウィンドウ

WPF で Windows 7/Vista スタイルの通知領域 (「システム トレイ」) ポップアップ アプリケーションを実装しています。ここまでの作業(通知アイコンの位置の決定、サイズ変更の無効化など)について書きました。

ただし、満足のいく解決には至っていない問題が 1 つあります。それは、通知アイコンを 2 回目にクリックしたときにウィンドウを非表示にすることです。たとえば、Vista/7 でボリューム アイコンをクリックしてボリューム コントロールを表示すると、アイコンを 2 回目にクリックすると再び非表示になることに注意してください。

ウィンドウの Deactivated イベントを処理してウィンドウを非表示にします。通知アイコンがクリックされると、ウィンドウは実際に非アクティブになります。ただし、もちろん、通知アイコンをクリックするとウィンドウが表示およびアクティブ化されるため、マウスが押されている間はウィンドウが消え、マウスが離されると再表示されます (マウス クリック イベントが完了します)。

私が最初に考えたのは、通知アイコンの MouseDown イベント (私は System.Windows.Forms.NotifyIcon を使用しています) を使用して、その時点でウィンドウが表示されているかどうかを確認することでした。表示されている場合は、ユーザーがクリックしたと解釈できます。通知アイコンをもう一度クリックしてウィンドウを非表示にします。残念ながら、MouseDown イベントは、マウスが実際にクリックされるまで発生しないようです (つまり、MouseClick イベントと同じように機能します)。その時点で、ウィンドウは既に非アクティブ化されて非表示になっています。これは、この解決策を除外しているようです。

私の次のアイデア (および私が最終的に使用したアプローチ) は、ウィンドウが非アクティブになったときにカーソル位置を取得し (GetCursorPos)、そのポイントが通知アイコンの境界内にあるかどうかを確認することでした。同時に、GetForegroundWindow を使用して現在アクティブなウィンドウを見つけます。通知アイコンが実際にクリックされる場合は、タスクバー (クラス名が Shell_TrayWnd の最上位ウィンドウ) または通知領域のフライアウトのいずれかである必要があります。 (クラス名が NotifyIconOverflowWindow の最上位ウィンドウ。Windows 7 以降のみ)。つまり、カーソルが通知アイコンの上にあり、通知領域がアクティブな場合、ユーザーが通知アイコンをマウスダウンしてウィンドウを非表示にしたと想定します。これらの条件が真の場合、次の MouseClick イベントによってウィンドウが表示/アクティブ化されることはありません。

ただし、このソリューションには少なくとも 1 つの問題があります。カーソルが通知アイコンの上にあり、ユーザーが Windows キーを押して [スタート] メニューを開く (または Windows キー + 数字のショートカットを使用してアプリケーションを開く) 場合、私のプログラムは間違って動作します。これは、通知アイコンへのマウスダウンと解釈されます (これらのキーボード ショートカットによってタスクバーがアクティブになるため)。これは、次にユーザーが実際に通知アイコンをクリックしたときに、ウィンドウが表示されないことを意味します。(通知アイコンをもう一度クリックすると表示されます。)

私が書いたことが何らかの意味を成すことを願っています。そうでない場合は、喜んで状況をさらに明確にします。

これを解決する方法について他のアイデアがあるかどうかを知りたいです。

それは不可能かもしれないと思います。Windows 7 のネイティブの通知領域のポップアップ アプリケーション自体は、単純なタイマーの実装を使用しているように思えます。たとえば、ボリューム コントロールが開いているときにボリューム アイコンをクリックすると、ウィンドウの非アクティブ化とマウス クリックの間の時間が約 2 秒未満の場合にのみ、ボリューム コントロールが閉じます。マウスをアイコン上で長時間押したままにしてから離すと、マウスを押す前に開いていた場合でも、ボリューム コントロールが再び表示されます。

0 投票する
1 に答える
1483 参照

c# - バルーンチップにチェックボックスを追加する簡単な方法はありますか?

バルーンチップ内にチェックボックス(またはその他のカスタムコントロール)を追加する簡単な方法はありますか?

「このメッセージを二度と表示しない」というオプションのチェックボックスをユーザーに提供したいと思います。

問題のバルーンチップは、を使用して表示されNotifyIcon.ShowBalloonTip()ます。

0 投票する
1 に答える
1098 参照

vb.net - システムトレイに表示される追加のNotifyIcon

NotifyIconに余分なアイコンが表示されるアプリで問題が発生しています。それを再現する手順は簡単ですが、問題は、追加した火の背後にある実際のコードの後に​​余分なアイコンが表示されることです。簡単に言うと、ボタンをクリックすると、メソッドFooBar()の実行がトリガーされます。このメソッドは、問題なく実行されますが、その主な役割は、バックグラウンドワーカーを起動して別のアプリにログインすることです。この特定のボタンがクリックされた場合にのみ表示されます。

不思議なことに、WndProcメソッドのオーバーライドがあり、追加のNotifyIconが表示されるまでステップスルーすると、このメソッド中に常に表示されるため、コードビハインド以外の何かが動作をトリガーする必要があります。私たちのWndProcメソッドは現在(WndProcが原因ではないと思いますが):

問題のNotifyIconが操作されるコード内の唯一の場所は、次のイベントハンドラーです(これも原因ではないと思いますが、詳細については):

backgroundworkerのDoWorkは次のとおりです(他のアプリにログインするためのクラス呼び出しだけですが、情報のためだけです)。

他の誰かがこれを引き起こしている可能性があるもの、またはおそらくこれをさらにデバッグする方法についてのアイデアを持っていますか?私はパターンを見ずにこれに頭をぶつけてきたので、別の目が非常にありがたいです。:)私はこれをMSDNwinformsフォーラムにも投稿しましたが、これまでのところ運がありませんでした。

0 投票する
3 に答える
4734 参照

c# - C#、Windowsフォーム:ClickイベントでShowBalloonTipを使用するNotifyIconは、DoubleClickイベントを発生しなくなりました

Windows Forms / C#/。Net Framework 2.0でNotifyIconを使用しているときに、MouseClickイベントまたはClickイベントにバルーンのヒントテキストを表示すると、DoubleClickまたはMouseDoubleClickイベントは発生しません。

通知アイコンをダブルクリックすると、バルーンチップが2回表示/更新されますが、メッセージボックスは表示されません。

VisualStudio2010とWindows7Ultimate64ビットを使用しています。

助けてくれてありがとう!

0 投票する
1 に答える
1807 参照

c# - C#&WPF-タスクバーポップアップ通知ウィンドウの問題

メッセンジャーのようなタスクバーのポップアップウィンドウを作成することができました。タスクバーの後ろに消えるのではなく下に移動すると、後ろに移動するという問題。

タスクバーの後ろに表示されないようにするにはどうすればよいですか?Windows 7では、タスクバーが透明であることを忘れないでください。

これが私のコードです:

編集:タイマー部分を変更したので、コントロールの高さを下げて再配置します。今問題はそれが点滅することです。どうすれば解決できますか?

コードは次のとおりです。

0 投票する
1 に答える
817 参照

c# - WPFアプリ、NotifyIcon(フォーム)の問題

のトレイアイコンに問題がありますWPF。今私はWindowsフォームから使用していますが、このコントロールはからNotifyIcon受け入れていません 。Windows.Forms(すべてのアプリはWPFにあります)とアプリケーションは強力に多言語である必要があるため、このコントロールに対してのみ他のグローバリゼーションコードを実行しないため、fromを使用する必要があります。これを解決する方法は?ContextMenuWPFContextMenuXAML

  1. WindowsフォームではなくWPFTrayからアイコンを作成するにはどうすればよいですか?
  2. WPFからフォームContextMenuからの制御にバインドする方法。NotifyInfo
  3. またはこれを解決する他の方法。

ご挨拶

0 投票する
1 に答える
675 参照

c# - XPでのC#notifyiconのバグ

私は、notifyiconコンポーネントが含まれていない限り、Vista、Win 7、およびXPで正常に動作するWinForm.NET2.0フレームワークアプリを持っています。コンポーネントをフォームにドロップして再コンパイルすると、VistaとWin 7は正常に動作し、起動するとすぐにXPがクラッシュします。私はprogram.csにロガーを入れて、そこに到達したが到達しなかった場合にログに記録します。VS2008でコンパイルするかVS2010でコンパイルするかに関係なく、同じ問題が発生します。同僚が自分のマシンからプロジェクトをコンパイルしていても、バグはXPにのみ存在します。

notifyiconコンポーネントをフォームから削除すると、すべてがXPで再び機能します。他の.NET2.0プロジェクトにnotifyiconを配置しようとしましたが、それらは機能するため、このプロジェクトだけに問題がある理由がわかりません。

XPマシンで、.NET2.0SP0と.NET2.0SP2を試しましたが、同じ問題が発生しました。変...

0 投票する
3 に答える
3465 参照

c# - バルーンチップの問題

こんにちは、

アプリケーション全体にバルーンチップを作成します。私の問題は、すべてのバルーンチップがタスクバーにとどまり、それらが消えるにはカーソルを合わせる必要があるということです。

私の質問は、通知アイコンが表示された後に非表示にするにはどうすればよいですか?

0 投票する
2 に答える
2757 参照

c# - NotifyIcon をシステム トレイに強制的に表示する

システム トレイに表示される NotifyIcon があり、アプリケーションが初めてアイドル状態になったときにバルーン ヒントを表示したい (ここで提案されているように: C# は application.run() の後にコードを実行する) が、アイコンが表示される前に Idle イベントが発生するがシステム トレイに表示され、バルーンが表示されなくなります。ShowBalloonTip を呼び出す前に、NotifyIcon を強制的に表示するにはどうすればよいですか?

0 投票する
1 に答える
1399 参照

.net - 通知アイコン アニメーション vb2008

皆さん、アプリケーションがビジーのときにアニメーション gif を表示し、ビジーでないときにグラスケール アイコンを表示するには、アプリケーションの通知アイコンが必要です。winxpsp3 で vb2008 を使用しています。

質問は

  1. 実行時に通知アイコンを変更する方法

  2. アプリケーション リソースに一連のアイコンがある場合、コードからリソース内の特定のアイコンを参照するにはどうすればよいですか

  3. アプリケーション アイコンが異なるアイコンの組み合わせで構成されている場合、使用するアイコンを ni=otifyicon のように指定するにはどうすればよいですかnotifyicon.icon = me.icon,index。 index は、コンパイルされた ico ファイル内のアイコンのインデックスです。