[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對象。C# - user32.dll - GetWindowRect問題
你跳過的步驟;你首先需要從窗口獲得本地句柄。例如,如果窗口是應用程序中的C#主窗體(假設爲WinForms應用程序),則可以使用新的'HandleRef(this,this.Handle);'您需要首先獲取有問題窗口的句柄.Handle可能不是)。 –