getdlgitem showwindow_enablewindow showwindow_enablewindow f(6)

电脑杂谈  发布时间:2017-01-22 04:03:51  来源:网络整理

DLL_PROCESS_DETACH:进程正在释放DLL

DLL_THREAD_ATTACH:进程已创建一个新的线程

DLL_THREAD_DETACH:进程已舍弃了一个线程

总的来说,无论何时调用DllMain()函数,都必须根据What的内容来采取适当的动作。这种适当的动作可以什么都不做,但不是返回非零值。

DllMain()接下来的便是设置钩子,键盘处理,和释放钩子。

2:建立头文件

正如应用程序所使用的其它任何库函数一样,程序也必须包含dll内的函数的原型。所有得Windows程序都必须包含windows.h的原因。所以我们现在建立一个头文件hookdll.h如下:

#defineDllImportextern"C"__declspec(dllimport)

DllImportvoidInstallHook(intnCode);

DllImportLRESULTCALLBACKKeyBoardProc(intnCode,WPARAMwParam,LPARAMlParam);

DllImportvoidEndHook(void);

使用dllimport主要是为了使代码更高效,因此推荐使用它。但是在导入数据时是需要dllimport的。当完成了上面的程序后,建一个项目工程,

不妨为hookdll,然后将hookdll.c插入导项目工程中,编译,则可以生成了hookdll.dll和hookdll.lib。

3:建立程序主文件

我们在上面作的所有得工作都是为现在的主程序打得基础。其实当我们完成了Dll文件后,剩下的就是调用设置钩子函数:InstallHook。如果你对

windows编程十分的熟悉,那么你可以在你任何需要的时候来调用InstallHook。但是在你必须记住在你退出程序的时候你需要调EndHook

以便释放你所装入的钩子函数。现在我在建立了一个hookspy.cpp,并将生成好的hookdll.dll和hookdll.lib拷贝到从一个目录

下,并建立一个hookspy的项目工程。将hookspy.cpp,hookdll.dll,hookdll.lib,hookdll.h插入到项目工

程中去。然后在建立windows窗口时就将钩子设置,在退出程序时退出钩子函数。比如:

caseWM_CREATE:

InstallHook(TRUE);

break;

caseWM_DESTROY://terminatetheprogram

EndHook();

PostQuitMessage(0);

break;


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-27965-6.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 如月葵
      如月葵

      父母的美德是一笔巨大的财富

    • 石金华
      石金华

      以前最起码吃

    热点图片
    拼命载入中...