如何检测现在是否播放任何video?

如何使用autohotkey , autoit , vbscript , c#或c检测是否正在播放任何video?

可以在任何本地播放器,基于Web的播放器或html5播放器中播放/流式传输video。 我们不知道播放器的名称也可能不在全屏播放器中。

PS。 检测CPU负载可能无法始终提供正确的结果,因此不可接受。

当天我在这方面做了一点点工作。 有一个WIN32API(旧学校)获取/设置是否禁用屏幕保护程序(在user32.dll,GetScreenSaverActive(),SetScreenSaverActive – 请参阅: http : //www.codeproject.com/Articles/17067/Controlling-The -Screen-Saver-With-C )。 这是播放video时最有可能设置的标志,但它不是100%可靠,因为并非每个播放器都会实现它。 它适用于大多数浏览器video,无论是通过插件,本机还是通过DirectX播放。 这也适用于大多数(所有?)外部播放器,如vlc,windvd等。

但。

没有确定的,确定video播放的100%方法。 你不能; 1.检查声音播放,因为用户可能正在使用iTunes而不是所有video都有声音2.检查全屏(通常是更好的选项),因为video可能正在浏览器中播放3.检查cpu / gpu负载,因为它不是可靠,你没有其他方法可以确定4.绝对确保玩家在最小化时没有清除/重置win32标志

另一种选择是尝试整理所有已知播放器的可执行可执行名称列表(可查找数据,但特别是在较旧版本上可行但耗时),并检查它们是否正在运行。 这不是100%可靠,既可以预先加载插件,也可以是浏览器,但实际上并不是在那个时刻播放video。

简而言之,我不知道100%的方式,但有几种方式可以让你获得90-95%。 那是知道是否有video播放的目的? 也许有一种更简单的方法可以找到你想要的东西……