如何检测是否正在使用autohotkey、autoit、vbscript、c#或c播放视频
视频可以在任何本地播放器、基于web的播放器或html5播放器中播放/流式传输。我们不知道玩家的名字也可能不是全屏的玩家。
PS。检测CPU负载可能并不总是给出正确的结果,因此它是不可接受的。
发布于 2013-02-15 05:22:48
我以前在这方面做了一些工作。有一个WIN32API (老式的)可以获取/设置是否禁用屏幕保护程序(在user32.dll中,GetScreenSaverActive(),SetScreenSaverActive -参见:http://www.codeproject.com/Articles/17067/Controlling-The-Screen-Saver-With-C)。这是在播放视频时最有可能设置的标志,但它并不是100%可靠的,因为不是每个播放器都会实现它。它适用于大多数浏览器视频,无论是通过插件播放,本地播放,还是通过DirectX播放。这也适用于大多数(所有?)外部播放器,如vlc、windvd等。
但。
没有万无一失的、100%确定视频播放的方法。您不能;1.检查声音播放,因为用户可能正在使用iTunes,但并非所有视频都有声音。2.检查全屏(通常是更好的选项),因为视频可能是在浏览器中播放的。3.检查cpu/gpu负载,因为它不可靠,您没有其他方法来确定4.绝对确保播放器在最小化时没有清除/重置win32标志。
另一种选择是尝试整理所有已知播放器的潜在可执行文件名称列表(可以做到,但查找数据很耗时,特别是在较旧的版本上),并检查它们是否正在运行。这也不是100%可靠的插件,因为它是由浏览器预加载的,而不是真正在那个时刻播放视频。
简而言之,据我所知没有100%的方法,但有几种方法可以让你达到90-95%的目标。这就是知道是否有视频播放的目的?也许有一种更简单的方法可以找到你正在寻找的东西。
https://stackoverflow.com/questions/11177373
复制相似问题