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. CustomControlの一部でマウスの位置を取得する方法
- 5. ウィンドウのビュー位置を取得する
- 6. クリックするとウィンドウ上部から特定の位置にスクロール
- 7. 内部レイアウトのサイズをピクセルで取得する
- 8. iOS - ウィンドウ内のビューの位置を取得しますか?
- 9. Geanyのウィンドウのサイズと位置
- 10. サイズ:位置に隠されたDIV:絶対一つは内部
- 11. 外側の位置から内部ループを開始
- 12. VBAでの位置、サイズ、hrefの取得
- 13. スカラー:コンストラクタの内部クラスから外部クラスを取得
- 14. C++ - ベクトルへの内部ポインタを取得
- 15. Symfony2 - 外部(公開)IPと内部(ローカル)IPを取得する方法は?
- 16. ライブ壁紙のアイコンと下部ストリップ/ホームボタンのサイズと位置
- 17. ウィンドウを最上部のdiv位置にロックする
- 18. 外部のCSSファイル内で変数を取得する
- 19. ドロップダウンリスト(WCF)で対応する外部キーを取得するC#
- 20. POSIX Cで独自の外部IPアドレスを取得する
- 21. androidのwebviewから選択した部分の開始位置と終了位置を取得する方法
- 22. bashスクリプト内で外部PS1値を取得する
- 23. 内部のチェックボックスコントロールをクリックするとウィンドウがフォーカスを取得しない
- 24. 外部ソースのシードを取得する
- 25. WPFアドナーレイヤー外部ウィンドウ
- 26. 外部キー値を取得
- 27. Django-外部キーモデルを取得
- 28. 透明なウィンドウでマウスの位置を取得する
- 29. ウィンドウのx位置をgxtで取得する方法
- 30. processing3で(P3D)ウィンドウの位置を取得する方法は?
目的は何ですか?なぜC#?私はあなたがクライアント側の計算について話していると思います..詳細情報を提供します。 –
すべてのコントロールには、Top、Left、Width、およびHeightプロパティがあります。最初にコントロールのハンドルを取得する必要があります。ハンドルにはウィンドウがあり、ウィンドウはコントロールです。 – jdweng