Windows フォームを起動したときに通知アイコンがシステム トレイに表示されないのはなぜですか?
これが私がやっていることです。
Windowsフォームアプリケーションであるトレイアプリケーションを起動するWindowsサービスがあります(現在のユーザーのコンテキストでそのアプリケーションを起動するために偽装を使用しています)。トレイ アプリケーションで、通知アイコンを含むフォームを起動しています。
ここでの問題は、通知アイコンがシステム トレイに表示されないことがあり、その理由がわかりません。
フォームの OnLoad メソッドで、フォームの visible プロパティを false に設定しています。また、私はいくつかのリモーティング サービス コール (ipc など) を行っています。問題ありますか?
通知アイコンを常にシステム トレイに表示するにはどうすればよいですか?
編集: OnLoad 関数のコードは次のとおりです。
protected override void OnLoad(System.EventArgs e)
{
this.Visible = false;
//Get some value from registry
CheckForStealthMode();
GetLoginType();
bool GetProbeStatus = false;
ServiceActivityInterface remoteMethods = null;
do
{
try
{
remoteMethods = (ServiceActivityInterface)Activator.GetObject(typeof(ServiceActivityInterface), "tcp://localhost:18800/ServiceRemoting);
ProbeStatus = remoteMethods.GetProbeStatus();
GetProbeStatus = true;
}
catch (Exception exception)
{
GetProbeStatus = false;
log.Error("Exception while getting the status of Probe:" + exception.Message);
}
finally
{
remoteMethods = null;
if (!GetProbeStatus)
{
Thread.Sleep(5000);
log.Debug("Retrying to get the probe status.");
}
}
} while (!GetProbeStatus);
}