[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
}
foreach (Process pr in Process.GetProcesses())
{
RECT rc;
GetWindowRect(???, out rc);
我应该在 "???" 处放什么?它告诉我必须放一个 HandleRef 对象,但我不知道如何从 Process 方法中获取 HandleRef 对象。
HandleRef(this, this.Handle);
。你需要首先获取所需窗口的句柄(而Process.Handle可能不是它)。 - Ed S.