Windows Api将当前活动/选定的进程视为唯一的前台进程,我需要将焦点放在在其他屏幕上运行的应用程序中(如果当前进程在主屏幕中处于活动状态,则我希望将前台应用程序集中在第二个屏幕,反之亦然)
目前,我可以选择任何过程。
Process currentProcess = Process.GetProcessById(2612);
var hWnd = currentProcess.MainWindowHandle;
if (hWnd != IntPtr.Zero)
{
SetForegroundWindow(hWnd);
}
[DllImport("user32.dll")]
internal static extern IntPtr SetForegroundWindow(IntPtr hWnd);
是否可以找到在另一个屏幕上运行的应用程序的进程ID?
答案 0 :(得分:1)
有没有一种方法可以根据屏幕坐标找到进程ID?
是的。您可以使用WindowFromPoint
从坐标中获取窗口句柄(确保在辅助屏幕中的Point处可见该窗口)。然后,您可以通过GetWindowThreadProcessId
GetWindowThreadProcessId(WindowFromPoint(Point),ref ProcessId);