Ita*_*aro 5 c# winapi mouseevent
我正在使用以下代码来获取当前进程的鼠标消息。
using (Process curProcess = Process.GetCurrentProcess())
using (ProcessModule curModule = curProcess.MainModule)
{
return SetWindowsHookEx(WH_MOUSE_LL, proc, GetModuleHandle(curModule.ModuleName), 0);
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,当此代码运行时,鼠标会变慢几秒钟,然后恢复正常。
有任何想法吗?
谢谢
编辑-挂钩方法
private static IntPtr mouseEvent(int nCode, IntPtr wParam, IntPtr lParam)
{
if (nCode >= 0 && MouseMessages.WM_LBUTTONDOWN == (MouseMessages)wParam)
{
MSLLHOOKSTRUCT hookStruct = (MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MSLLHOOKSTRUCT));
LastLeftClick = new ClickInfo { Time = DateTime.Now, X = hookStruct.pt.x, Y = hookStruct.pt.y };
}
return CallNextHookEx(hookID, nCode, wParam, lParam);
}
public class ClickInfo
{
public int X { get; set; }
public int Y { get; set; }
public DateTime Time { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
你的钩子程序是什么样的?
如果您的进程只有一个 UI 线程,请改用消息筛选器: http://msdn.microsoft.com/en-us/library/system.windows.forms.application.addmessagefilter.aspx
| 归档时间: |
|
| 查看次数: |
11938 次 |
| 最近记录: |