C#で外部ウィンドウ(Firefoxやエクスプローラなど)の内部サイズと位置を取得したいと考えています。私はしようとしたが、私は最初に何もできません(ウィンドウ全体または自分のフォームサイズのみ)。C#で外部ウィンドウの内部サイズと位置を取得する
-2
A
答えて
1
このようなことを任意のウィンドウで行うには、Win32 APIにアクセスする必要があります。
位置については、ウィンドウの長方形が必要です。これを行うには、ウィンドウハンドル(HWND)が必要です。 Here's an answer describing how to do that.ここではその答えからコードです:彼は、前面のウィンドウでそれをやっている
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetWindowRect(HandleRef hWnd, out RECT lpRect);
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public int Left; // x position of upper-left corner
public int Top; // y position of upper-left corner
public int Right; // x position of lower-right corner
public int Bottom; // y position of lower-right corner
}
Rectangle myRect = new Rectangle();
private void button1_Click(object sender, System.EventArgs e)
{
RECT rct;
if(!GetWindowRect(new HandleRef(this, this.Handle), out rct))
{
MessageBox.Show("ERROR");
return;
}
MessageBox.Show(rct.ToString());
myRect.X = rct.Left;
myRect.Y = rct.Top;
myRect.Width = rct.Right - rct.Left + 1;
myRect.Height = rct.Bottom - rct.Top + 1;
}
は、(上記のリンクでそのStackOverflowのページの上部にある質問を参照)。私はあなたが何を望んでいるのか、それをどうやって入手しようとしているのか分かりません。あなたはそれについて何の情報も提供していませんでした。
ウィンドウハンドルを取得したら、GetClientRect()
Win32関数を呼び出して、ウィンドウの内部 "クライアント領域"のサイズを取得できます。つまり、タイトルバーと枠線以外のすべてを意味します。 GetWindowRect()
がC#で動作していれば、そのためのPInvoke宣言は推測するのが簡単ですが、here it is anywayです。
関連する問題
- 1. TinyMCE - 外部ツールバーの位置
- 2. 位置のスクロールバーを取り除くこと:位置の絶対的な内部:オーバーフローの相対的な内部:
- 3. MarshMallowの内部メモリサイズと外部メモリサイズを取得
- 4. ウィンドウのビュー位置を取得する
- 5. CustomControlの一部でマウスの位置を取得する方法
- 6. クリックするとウィンドウ上部から特定の位置にスクロール
- 7. ユーザーからの位置を取得し、api.aiで外部リクエストを実行
- 8. 文字列内にある部分文字列の位置を取得する
- 9. 内部レイアウトのサイズをピクセルで取得する
- 10. ウィジェットの位置とウィンドウのサイズ
- 11. Geanyのウィンドウのサイズと位置
- 12. iOS - ウィンドウ内のビューの位置を取得しますか?
- 13. VBAでの位置、サイズ、hrefの取得
- 14. サイズ:位置に隠されたDIV:絶対一つは内部
- 15. 外側の位置から内部ループを開始
- 16. C++ - ベクトルへの内部ポインタを取得
- 17. スカラー:コンストラクタの内部クラスから外部クラスを取得
- 18. 絶対位置での位置部門
- 19. ライブ壁紙のアイコンと下部ストリップ/ホームボタンのサイズと位置
- 20. Symfony2 - 外部(公開)IPと内部(ローカル)IPを取得する方法は?
- 21. ウィンドウを最上部のdiv位置にロックする
- 22. ドロップダウンリスト(WCF)で対応する外部キーを取得するC#
- 23. POSIX Cで独自の外部IPアドレスを取得する
- 24. 外部のCSSファイル内で変数を取得する
- 25. Javaコードスタイル:クラス内部の位置
- 26. androidのwebviewから選択した部分の開始位置と終了位置を取得する方法
- 27. C#リスト内の特定の位置を取得する
- 28. bashスクリプト内で外部PS1値を取得する
- 29. 内部のチェックボックスコントロールをクリックするとウィンドウがフォーカスを取得しない
- 30. C++:グローバルマウスフックとウィンドウの位置をリセット
目的は何ですか?なぜC#?私はあなたがクライアント側の計算について話していると思います..詳細情報を提供します。 –
すべてのコントロールには、Top、Left、Width、およびHeightプロパティがあります。最初にコントロールのハンドルを取得する必要があります。ハンドルにはウィンドウがあり、ウィンドウはコントロールです。 – jdweng