获取正在运行的流程维度

Col*_*lbs 2 .net c# process

我正在尝试抓取应用程序中特定x,y位置的屏幕截图.有没有办法在Process对象中获取正在运行的应用程序,然后获取它的维度?

就像是:

Process[] processlist = Process.GetProcesses();
foreach (Process proc in processlist)
{
Console.WriteLine("Process: {0} ID: {1}", proc.Width, proc.Height);
}
Run Code Online (Sandbox Code Playgroud)

Ken*_*son 6

可能有其他方法可以做到这一点,但这是一个快速的高级解决方案:

  1. 获取主窗口句柄(Process.MainWindowHandle).
  2. 使用win32 API函数GetWindowRect获取窗口高度

这个SO问题的答案显示了获取窗口大小然后进行设置.

编辑:我意识到这个答案假设该过程只有一个窗口.这个SO 问题/答案描述了获取进程的所有窗口.