在 Mac 上使用 C# 获取活跃的 window 信息

Get active window information using C# on Mac

先决条件。 Visual Studio 用于 Mac、单声道、C#

我正在将现有的 C# 应用程序从 Windows 移植到 Mac。我目前需要的是获取有关当前活动 window/process 的信息。只是 user-friendly 应用程序名称和 window 标题。

Windows 代码为此使用 Win API,例如 GetForegroundWindow。 Mac 上是否存在类似的东西?有什么方法可以获取所需信息吗?

您正在寻找共享 NSWorkspaceFrontmostApplication,它 returns 一个 NSRunningApplication 实例。

var foreground_app = NSWorkspace.SharedWorkspace.FrontmostApplication;
Console.WriteLine($"Name: {foreground_app.LocalizedName}");
Console.WriteLine($"Pid: {foreground_app.ProcessIdentifier}");

回复:https://developer.apple.com/documentation/appkit/nsrunningapplication?language=objc