如何获得窗口的位置?

Pat*_*ryk 9 c# position window process intptr

我想知道获得进程窗口位置的方式.我一直在网上寻找,但没有结果.谢谢 :)

Process[] processes = Process.GetProcessesByName("notepad");
Process lol = processes[0];

IntPtr p = lol.MainWindowHandle;
Run Code Online (Sandbox Code Playgroud)

ion*_*den 15

试试这个:

[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr FindWindow(string strClassName, string strWindowName);

[DllImport("user32.dll")]
public static extern bool GetWindowRect(IntPtr hwnd, ref Rect rectangle);

public struct Rect {
   public int Left { get; set; }
   public int Top { get; set; }
   public int Right { get; set; }
   public int Bottom { get; set; }
}

Process[] processes = Process.GetProcessesByName("notepad");
Process lol = processes[0];
IntPtr ptr = lol.MainWindowHandle;
Rect NotepadRect = new Rect();
GetWindowRect(ptr, ref NotepadRect);
Run Code Online (Sandbox Code Playgroud)

  • Rect成员var的顺序错误.它应该是左,上,右下.否则,您将获得不正确的值. (7认同)
  • 你为什么要包含FindWindow函数? (4认同)