【发布时间】:2014-11-25 18:23:40
【问题描述】:
我需要在我的应用程序中不在屏幕上获取鼠标位置。
我用过全局键鼠钩子here
在winforms下可以正常工作,但在wpf下不行。
我正在使用版本 1 的代码并使用以下代码
var activity = new UserActivityHook();
activity.OnMouseActivity += activity_OnMouseActivity;
但它没有工作,而是给了我以下错误:
附加信息:找不到指定的模块
下面的代码
public void Start(bool InstallMouseHook, bool InstallKeyboardHook)
{
// install Mouse hook only if it is not installed and must be installed
if (hMouseHook == 0 && InstallMouseHook)
{
// Create an instance of HookProc.
MouseHookProcedure = new HookProc(MouseHookProc);
//install hook
hMouseHook = SetWindowsHookEx(WH_MOUSE_LL, MouseHookProcedure,
Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]), 0);
//If SetWindowsHookEx fails.
if (hMouseHook == 0)
{
//Returns the error code returned by the last unmanaged function called using platform invoke that has the DllImportAttribute.SetLastError flag set.
int errorCode = Marshal.GetLastWin32Error();
//do cleanup
Stop(true, false, false);
//Initializes and throws a new instance of the Win32Exception class with the specified error.
throw new Win32Exception(errorCode);
}
}
}
WPF 有什么替代方案吗?还是我遗漏了什么?
【问题讨论】:
-
@SonerGönül 我只在 wpf 中收到此错误..它在 winforms 中工作正常..所以这里的链接对我的问题没有帮助。
-
为了详细说明 Soner Gonul 基本上没有提供信息的响应,您似乎没有初始化 UserActivityHook。
-
很多事情都错了——所以,我们在这里解决错误......
-
您只想获取mouse position?