【发布时间】:2011-06-17 22:01:42
【问题描述】:
我所知道的唯一一个可以在任何浏览器中减速和加速播放 YouTube 视频的好软件首先下载它(因为那会很麻烦),是 Enounce MySpeed。
很遗憾,这个软件不是免费的,我的试用版已经用完了。我正在玩弄它的注册表设置并注意到一些键:
ProgramsToHook: iexplore.exe;firefox.exe;plugin-container.exe;chrome.exe;safari.exe;opera.exe;maxthon.exe;feeddemon.exe;realplay.exe;flvplayer.exe;flv player.exe;flock.exe;adobe media player.exe
UseFlashAdapter: 1
LLModules: ole32.dll;nspr4.dll;chrome.exe;realplay.exe;objb3201.dll;oleaut32.dll;rpflashplayer.dll
ModulesToIntercept: flash10*;flash9*;npswf32.dll;gcswf32.dll;fldbg10*;flashplayer.3.1.1k.ocx;adobe media player.exe
根据这些注册表项的名称和值,我猜测 MySpeed 软件在列出的模块中挂钩了一些功能(但模块与 DLL 是否相同?..)并且这样做了对于 ProgramsToHook 中列出的每个进程。这是我不明白的。 MySpeed 软件的概念是什么。显然它是在钩住一些东西,但我对 Windows 钩子的复杂性不太熟悉,所以我来请教各位专家。我在想,如果我能理解这个钩子过程是如何工作的,我可以使用 EasyHook 制作我自己的软件版本,这是一个出色的 .NET 库,用于执行用户模式和内核模式钩子。
我认为 Windows 用户模式挂钩是这样的。您在一个 DLL 中选择一个函数,然后在您想要的一个进程中拦截该函数(也称为钩子)。如果您想在多个进程中挂钩 DLL,您只需为每个进程重复该过程即可。
然后内核模式挂钩只是在一个 DLL 中选择一个函数,并在每个调用它的进程中拦截该函数(因此是内核模式)。但肯定有很多方法可以上钩;我也不太清楚这两个钩子和 DLL 注入有什么区别。
所以重点是,我想知道 MySpeed 的工作原理。他们的钩子概念是什么?如果我能知道这一点,那么我可以在 .NET 中制作这样的软件!
提前致谢。
【问题讨论】:
-
+1 - 好问题;这对于可用性目的(第二语言,难以看/听)以及从音乐视频中学习乐器部分非常有用。
-
是的。令人惊讶的是,除了 Enounce 的 MySpeed,实际上没有其他软件可以减慢或加速 YouTube 视频播放。