当前位置: 首页 > 编程语言 > C#

找不到模块分享

时间:2023-04-10 20:35:06 C#

找不到模块我一直在研究这个问题,但还没有找到更接近解决方案的方法。我再次挖掘出我的旧WindowsHookLib-它可以在http://www.codeproject.com/KB/DLL/WindowsHookLib.aspx获得。这个库允许全局的Windows鼠标/键盘/剪贴板钩子,这是非常有用的。我正在尝试使用此处的鼠标挂钩捕获鼠标运动(我可以使用始终轮询Cursor.Position的计时器,但我计划稍后使用WindowsHookLib的更多功能)。代码如下:MouseHookmh=newMouseHook();mh.InstallHook();mh.MouseMove+=newEventHandler(mh_MouseMove);但是当调用InstallHook()时,出现异常:“找不到指定的模块”。陌生感。搜索,我发现有人认为这是因为DLL没有包含在WindowsPATH变量中,并且因为将它放在system32中并没有帮助我将整个程序转换为C#以直接包含在我的项目中(我很好奇关于它是如何工作的)。但是这个错误一直存在,所以我对此进行了一些挖掘并在负责的库中找到了代码:InInstallHook()我们有IntPtrhinstDLL=Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]);this._hMouseHook=UnsafeNativeMethods.SetWindowsHookEx(14,this._mouseProc,hinstDLL,0);如果(this._hMouseHook==IntPtr.Zero){thrownewMouseHookException(newWin32Exception(Marshal.GetLastWin32Error()).Message);这(在修改和重新编译之后)告诉我,我真正得到的是Windows错误“ERROR_MOD_NOT_FOUND”!现在,我很伤心。我不是直接把HookLibrary编译到我的工程中了吗?(UnsafeMethods.SetWindowsHookEx只是来自user32的DllImported方法)非常感谢任何答案,或正确方向的产品,或任何提示,指针或类似内容!我发现在迁移到.NET4.0时,当Hook过程在本机程序集中时,我必须在IntPtr.Zero中发送hMod参数。您可以在此处参考msdn文档。http://msdn.microsoft.com/en-us/library/ms644990%28VS.85%29.aspx我也有这个问题。我发现这似乎与您使用的.Net版本有关。.Net4出现此错误,更改为.Net3.5即可。以上是C#学习教程:模块分享的所有内容我都找不到了。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: