/// <summary> /// Get process under mouse cursor /// </summary> /// <returns></returns> public static Process GetProcessAtCoordiante(LgPoint point) { uint pid = 0; POINT ptCursor = new POINT(point.X, point.Y); IntPtr handle = WindowFromPoint(ptCursor); GetWindowThreadProcessId(handle, out pid); return(Process.GetProcessById((int)pid)); }
private IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) { if (nCode >= 0 && MouseMessages.WM_LBUTTONDOWN == (MouseMessages)wParam) { MSLLHOOKSTRUCT hookStruct = (MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MSLLHOOKSTRUCT)); LgPoint point = new LgPoint(hookStruct.pt.x, hookStruct.pt.y); Config?.AddWindow(point); Console.WriteLine(hookStruct.pt.x + ", " + hookStruct.pt.y); } return(CallNextHookEx(_hookID, nCode, wParam, lParam)); }