【发布时间】:2020-11-07 23:33:21
【问题描述】:
我想获取有关所有当前活动媒体播放的信息。我找到了一种读出所有媒体会话的方法here:
using Windows.Media.Control;
namespace ConsoleApp1 {
public class Program {
[STAThread]
static void Main(string[] args) {
var gsmtcsm = GlobalSystemMediaTransportControlsSessionManager.RequestAsync().GetAwaiter().GetResult().GetSessions();
foreach (var session in gsmtcsm) {
var mediaProperties = session.TryGetMediaPropertiesAsync().GetAwaiter().GetResult();
Console.WriteLine("{0} - {1}", mediaProperties.Artist, mediaProperties.Title);
}
Console.ReadKey();
}
}
}
现在我想为这些会话获取相应的程序。另外,如果它存在,我想获取程序的窗口。如果窗口存在,我的目标是以编程方式将它移动到另一个屏幕。程序句柄仅用作标识符。
例如: 我打开一个随机的 .mp4 文件。默认情况下,它由 Windows Films & TV 播放。现在我想获取会话、程序和窗口(电影和电视有一个窗口)并将其移动到另一个屏幕(通过代码)
另一个例子: 我在 Youtube 上看一个视频。现在我想获取我打开 Youtube 的浏览器的窗口。
【问题讨论】: