Как определить позицию чужого окна в .net?

Есть win функция "GetWindowRect" которая по сути должна возвращать позицию окна по номеру процесса, но в реале возвращает цифры далёкие от реальности.

[DllImport("user32.dll", CharSet = CharSet.Unicode)]
private static extern bool GetWindowRect(IntPtr hwnd, ref RECT rectangle);

[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public int X;
public int Y;
public int Width;
public int Height;
}

или так

[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public int Left;
public int Top;
public int Right;
public int Bottom;
}

Как можно по другому узнать реальную позицию окна?
  • Вопрос задан
  • 2412 просмотров
Решения вопроса 1
aush
@aush
GetWindowRect ищет не по номеру процесса, а по хэндлу окна. Цифры возвращает правильные.

Хэндл окна можно найти, например, с помощью FindWindow.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы