Jas*_*son 16 c# windows flash dll hook
我所知道的唯一一款可以在任何浏览器中减速和加速播放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
Run Code Online (Sandbox Code Playgroud)
根据这些注册表项的名称和值,我猜测MySpeed软件会挂钩列出的模块中的一些函数(但模块是否与DLL相同?)并且每个进程都这样做在ProgramsToHook中列出.这是我不明白的.MySpeed软件的概念是什么?显然这是挂钩的东西,但我不太熟悉Windows钩子的错综复杂,所以我来问你专家.我想如果我能理解这个钩子进程是如何工作的,我可以使用EasyHook制作我自己的软件版本,这是一个非常棒的.NET库来执行用户模式和内核模式钩子.
我认为Windows用户模式挂钩就是这样的.您在一个DLL中选择一个函数,并在一个您想要的进程中截取该函数(也称为钩子).如果要在多个进程中挂钩DLL,则只需为每个进程重复该过程.
然后内核模式挂钩只是在一个DLL中选择一个函数并在每个调用它的进程中拦截该函数(因此是内核模式).但肯定有很多方法可以勾选; 我不太确定这两个钩子和DLL注入之间的区别.
所以重点是,我想知道MySpeed是如何工作的.他们的挂钩概念是什么?如果我能知道这一点,那么我可以用.NET制作这样的软件!
提前致谢.
我无法为您提供准确的解释,因为我不知道 API 调用或功能,但它是这样的:您的应用程序会查找 iexplore.exe,并在其中拦截对某些模块的调用。该模块主要是flash播放器。Flash 支持较慢地播放视频,因此您可以修改 iexplore.exe(网页上的 JavaScript 播放按钮)的调用,或进行额外的调用来设置播放速度。
你需要做什么:
挂钩:http://msdn.microsoft.com/en-gb/library/ms644960.aspx
我认为没有多少人在 C# 中这样做过,所以它可能会带来挑战。如果你有博客或其他东西可以分享血淋淋的细节,我会对进展(障碍)感兴趣。:)
编辑: Deviare API Hook 软件似乎不仅可以监视调用,还可以让您拦截它们。因此,它是一款满足您需求的一体化套件。:)
EDIT2:相关问题:如何拦截发送到窗口的消息?