3

システム トレイに最小化するように設計されたアプリケーションがあります。そこに問題はありません。

私が抱えている問題は、その実行可能ファイルへのデスクトップ ショートカットを設定して起動するときに、最小化された状態を強制するために Windows が何をしているのかを判断できないことです。

ここに画像の説明を入力

フォームのコンストラクターにいくつかのデバッグ出力を配置し、ショートカットを介して起動しました。コマンド ライン引数がなく、WindowStateyieldsのチェックが行われますNormal。それでも、アプリはタスクバーに最小化されて起動します。

ただし、それは問題です。フォームが画面上にあり、ユーザーが最小化した場合と同じように、システム トレイに最小化して開始したいのです。もちろん、「最小化」ショートカットが使用されたとき、またはユーザーがフォームで最小化をクリックしたときだけです。

編集: 好奇心のために...コンストラクターをチェックインしたため、最初のテストに欠陥がありました。テストをLoadメソッドに配置すると、Minimized状態が生成され、それに反応してコードを呼び出して、「トレイへの最小化」を実行できました。

4

1 に答える 1

3

Windows は、メイン ウィンドウを最小化するためのパラメーターを使用してプロセスを開始しています。

C# では、 WindowStyle (MSDN)ProcessStartInfoで使用するように設定することで、同じことができますProcess.Start()

ネイティブの世界では、CreateProcess (MSDN) API を使用し、STARTUPINFOを に設定wShowWindowして渡しSW_MINIMIZEます。

ウィンドウの状態を照会するには、GetWindowInfo (MSDN)dwStyleを使用し、 が設定されているかどうかを確認しますWS_MINIMIZE。C# では、これはForm.WindowStateにある必要があります。

于 2014-12-02T20:07:40.143 に答える