問題タブ [window-position]
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.
c# - Windows の復元位置が機能しないことがある
開いているウィンドウの場所とサイズをファイルに保存し、そのファイルから (コマンド ライン引数に基づいて) それらを復元する簡単な C# プログラムを作成しました。これは常に一部のプログラムでは機能し、他のプログラムでは機能しませんが、その理由はわかりません。
ウィンドウの位置 (x,y) とサイズ (w,h) を取得する部分は、この Windows 標準関数を使用します。
ウィンドウのサイズと位置を設定する部分は、この Windows 標準の機能を使用します。
これらはコードで次のように宣言されています
コードの残りの部分は目立たないものです。一部のデータをテキスト ファイルに保存し、一部のデータをテキスト ファイルから読み取ります。それはすべてオンラインの例からコピーして貼り付けたもので、私は初心者の C#/Windows プログラマーです。
このプログラムは、特定のプログラムでは非常にうまく機能しますが、他のプログラムではまったく機能しません。Chrome を元のサイズと位置に復元できますが、Firefox や Microsoft Edge は復元できません。Visual Studio Code は機能しますが、R Studio は機能しません。(Windows プログラミングについてあまり知らなかったので) Windows プログラムの GUI 部分は標準の Windows ライブラリでコーディングされていると思っていたので、これは驚きですSetWindowPos
。
これが一部のプログラムで機能し、他のプログラムでは機能しないのはなぜですか?
4K モニターを使用しているため、これを行う必要があります。モニターがオフになるか、タイムアウトになるたびに、何らかの理由で Windows がほとんどのウィンドウのサイズと位置を失います。これについては別に投稿しましたが、解決策がありませんでした。 https://superuser.com/questions/1513288/windows-loses-window-position-on-large-monitor
興味のある方は、ソース コードを https://github.com/radumaolescu/WinPosに置いてください。
完全にパッチが適用された Windows 10 Pro を、安定したスペックの 2019 PC で実行しています。
.net - GetWindowPlacement の NormalPosition のみを使用して、フォームの位置とサイズを保存および復元します
.NET Framework 4.6 と Windows フォームでは、タイトル バーがなく、最小化ボタンと最大化ボタンがなく、サイズ変更可能な (カスタム コードを使用) ボーダレス フォームがあります。
GetWindowPlacementとSetWindowPlacementを使用して、フォームの場所とサイズを保存して復元したいと思います。
からこの種の値を取得していますGetWindowPlacement
:
私のフォーム/ウィンドウには最小化ボタンと最大化ボタンがありません。意図されたすべての目的のために、最小化/最大化するように設計されていないため、常に通常のウィンドウ状態に復元する必要があります。
NormalPosition
したがって、長方形WindowPlacement
をアプリケーション設定に保存することだけを考えています。
フォームをロードするときに、設定からロードされたフィールドを使用してWindowPlacement
構造を作成し、他の値をデフォルト ( 1、-1、-1 など)で埋めます。NormalPosition
ShowCmd
MinPosition
私が心配しているのは、ドキュメントからのこの引用です:
WINDOWPLACEMENT 構造体で使用される座標は、GetWindowPlacement および SetWindowPlacement 関数でのみ使用する必要があります。
私は心配する必要がありますか?のみを保存するという私の計画で、ある種の奇妙な動作を得ることができますNormalPosition
か?
c# - C# コンソール アプリケーション ウィンドウを画面中央に移動する方法
私は C# コンソール アプリケーションを使用しています。アプリケーション ウィンドウを画面の中央に移動するにはどうすればよいですか?
追加の詳細
フレームワークのバージョン: .NET Core 3.1
ウィンドウのサイズ: 37x20 ( Console.SetWindowSize(37, 20);
)