[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은 그렇지 않을 가능성이 있습니다.) –