在Mac上使用C#获取活动窗口信息

时间:2018-08-02 06:32:49

标签: c# macos xamarin mono xamarin.mac

先决条件。 Visual Studio for Mac,Mono,C#

我要将现有的C#应用​​程序从Windows移植到Mac。我当前需要的是获取有关当前活动窗口/进程的信息。只是用户友好的应用程序名称和窗口标题。

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

1 个答案:

答案 0 :(得分:1)

您正在寻找共享的FrontmostApplication中的NSWorkspace,它返回一个NSRunningApplication实例。

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

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