MoveWindow ничего не делает в окне DeSmuME - PullRequest
0 голосов
/ 20 мая 2019

Я делаю базовый тест MoveWindow(handle, 0, 0, 1280, 720, true) на процесс DeSmuME, и это не приводит к изменениям вообще, я по крайней мере ожидал, что его X / Y pos изменится на 0 (в верхнем левом углу экрана), но нет, вообще ничего, что странно, это то, что он отлично справляется с ручкой, и на нем работает и структура RECT, ему удается получить прекрасные позиции.

[StructLayout(LayoutKind.Sequential)]
public struct RECT {
  public int left;
  public int top;
  public int right;
  public int bottom;
}
[DllImport("user32.dll", SetLastError = true)]
static extern bool GetWindowRect(IntPtr hWnd, ref RECT Rect);

[DllImport("user32.dll", SetLastError = true)]
static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int Width, int Height, bool Repaint);
static void Main(string[] args) {
  Process[] processes = Process.GetProcessesByName("DeSmuME_X432R_x64");
  foreach (Process p in processes) {
    IntPtr handle = p.MainWindowHandle;
    RECT Rect = new RECT();
    if (GetWindowRect(handle, ref Rect)) {
      MoveWindow(handle, 0, 0, 1280, 720, true);
    }
    Console.WriteLine(Rect.right);
    Console.ReadLine();
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...