Задать вопрос

Как определить позицию чужого окна в .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;
}

Как можно по другому узнать реальную позицию окна?
  • Вопрос задан
  • 2424 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    Профессия "C# разработчик"
    1 неделя
    Далее
  • XYZ School
    C# для разработки игр
    5 месяцев
    Далее
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
Решения вопроса 1
aush
@aush
GetWindowRect ищет не по номеру процесса, а по хэндлу окна. Цифры возвращает правильные.

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

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

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