web-dev-qa-db-ja.com

アプリケーションが開くモニターをどのように制御しますか?

作業中の2モニターユーザーとして、アプリケーションが開くモニター(プライマリまたはセカンダリモニター、アプリケーションが最後に開いたモニターなど)に関してアプリケーションの動作が異なることに気付きました。正直に言うと、一部のアプリケーションはプライマリモニターで開いてほしいので私を困らせ、必要な場合はセカンダリに移動します。ただし、これらのアプリケーションは完了し、自分の制御の及ばないため、2台のモニターを使用しているユーザーが実行する可能性がある自分のアプリケーションについて質問したいと思います。

どの種類のコントロールを使用して、ユーザーがアプリケーションを開くモニターを指定できるか、アプリケーションが閉じていたときにモニターがあったことをアプリケーションに「記憶」させて、アプリケーションを特定のモニターで強制的に起動できるようにするか?

すべてのオペレーティングシステムとプログラミング言語にまたがるソリューションを探していますが、OSや言語が異なれば、制御も異なると思います。

関連する質問

23
Thomas Owens

私は、Windowsプログラマーとして、アプリによって作成されたWindowsの起動モニターをaで制御します。アプリの最後の位置をレジストリに保存し、それを復元すること、およびb。保存された情報がないため、Windowsがデフォルトのロジックを使用してアプリを配置するために使用する魔法のフラグ値に開始位置を設定します。 MSがユーザーエクスペリエンスを向上させると、デフォルトのロジックはOSからOSに変わりますが、ユーザーが見ている可能性が最も高いどのモニターでもアプリが確実に起動する傾向があります。

マルチモニターWindowsを使用するユーザーとしてXP/Vistaシステムの場合、アプリケーションの開始位置を設定できるnVidiaデスクトップマネージャーを使用します。そうしないと、適切な動作が行われません。

9
Chris Becke

考慮すべき1つのことは、アプリケーションの呼び出しの間にモニター構成が変更されている可能性があることです(たとえば、ドッキングされていて外部モニターを使用するラップトップで実行されている場合など)。アプリケーションが可視範囲に配置されていることを確認してください。

APIに関しては、その情報の一部を提供するSystem.Windows.Forms.Screenクラスがあります。

2
Philipp Schmid

従来のUnixおよびLinuxのウィンドウマネージャーの観点からは、ユーザーは制御できません。ウィンドウマネージャはウィンドウの配置を処理します。

ウィンドウマネージャにヒントを与えることができるかもしれませんが、そのようなことを無視するようにウィンドウマネージャを設定することが可能であるべきです。プログラムからウィンドウを移動または配置すると、大きな仮想デスクトップを使用しているときに簡単に痛みが生じます。

参照: http://standards.freedesktop.org/wm-spec/wm-spec-latest.html

2
iny

KDE 4.13.3(多分これより古いものと新しいものではこれを行うことができます)(翻訳が不正確かもしれません-私はポーランド語バージョンを使用します):

  1. 希望のプログラムを実行します
  2. タイトルバーを右クリック
  3. 「その他の操作」->「その他のウィンドウ設定...」を選択します(「その他のプログラム設定...」の下にさらに多くのオプションがあります)
  4. タブ「サイズとレイアウト」に移動します
  5. チェックボックスを「画面」にマークし、「強制」を選択して画面番号を選択します。このプログラムのウィンドウは常にその画面で開かれます。
0
keypress