Autohotkey 如何检测是否正在播放任何视频?

Autohotkey 如何检测是否正在播放任何视频?,autohotkey,autoit,vbscript,c#,c,Autohotkey,Autoit,Vbscript,C#,C,如何使用、或检测是否正在播放任何视频 视频可以在任何本地播放器、基于web的播放器或html5播放器中播放/流式传输。我们不知道球员的名字,球员也可能不在全屏 另外,检测CPU负载可能不会始终给出正确的结果,因此这是不可接受的。我在这方面做了一些工作。有一个WIN32API(老式)可以获取/设置是否禁用屏幕保护程序(在user32.dll、GetScreenSaverActive()和SetScreenSaverActive中,请参见:)。这是播放视频时最有可能设置的标志,但它不是100%可靠的

如何使用、或检测是否正在播放任何视频

视频可以在任何本地播放器、基于web的播放器或html5播放器中播放/流式传输。我们不知道球员的名字,球员也可能不在全屏


另外,检测CPU负载可能不会始终给出正确的结果,因此这是不可接受的。

我在这方面做了一些工作。有一个WIN32API(老式)可以获取/设置是否禁用屏幕保护程序(在user32.dll、GetScreenSaverActive()和SetScreenSaverActive中,请参见:)。这是播放视频时最有可能设置的标志,但它不是100%可靠的,因为不是每个播放器都会实现它。它适用于大多数浏览器视频,无论是通过插件、本机还是通过DirectX播放。这也适用于大多数(所有?)外部播放器,如vlc、windvd等

但是

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

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


简言之,我知道没有100%的方法,但有几种方法可以让你达到90-95%。这就是知道是否有视频播放的目的?也许有一种更简单的方法可以找到你要找的东西……

我觉得这并不是尽可能精确的。你为什么要这样做?我想如果没有猜测,这是不可能的。(在打开的文件句柄/HTTP连接中检查已知的视频文件扩展名,然后查看访问视频文件的进程是否有较高的CPU负载。)“现在播放任何视频”是什么意思?哪里在互联网上的任何地方?这个问题不可能回答-1.@TimS。我希望我的脚本仅在没有播放/流式播放任何视频时运行,因此我必须检测到它。@我的意思是它在我的电脑上播放,但不知道视频/流的来源。这只有在启用屏幕保护程序时才起作用。@Bonner웃, 对。这又回到了我的观点,即没有一种100%确定的方法可以做到这一点