【发布时间】:2019-06-11 21:56:45
【问题描述】:
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?
【问题讨论】:
-
我不明白。目标进程有什么独特的识别因素?
-
这是在第二个屏幕上全屏(或大部分)运行的进程,这正是我的问题,我不知道如何识别它,我知道我可以列出所有进程,但我如何可以从此列表中找到所需的进程,只有两种按 id 和按名称过滤的方法。
-
你想完成什么?
-
进程不在屏幕上运行。一个进程可以有多个窗口出现在不同的监视器上。这是您正在寻找的窗口。枚举窗口并选择符合您条件的窗口。
-
感谢您的回复,实际上我不知道标准是什么,因为我正在尝试构建一个应用程序,该应用程序可以根据用户的面部方向将焦点放在窗口上,如果用户转动他的面对第二个屏幕,在这个屏幕上运行的软件获得焦点。