void wh_OnMessageHook(object sender, MessageHookEventArgs e) { switch (e.msg) { // A window has been hidden / visible case StandardMessages.WM_SHOWWINDOW: string txt = Win32.GetText((int)e.hwnd).ToLower(); if (txt.Length == 0) return; ChildWindow child = new ChildWindow((int)e.hwnd); if ((txt.StartsWith("raise") || txt.StartsWith("bet") || txt.StartsWith("all") || txt.StartsWith("fold") || txt.StartsWith("wait") || txt.StartsWith("call") || txt.StartsWith("check") || txt.StartsWith("post") || txt.StartsWith("sit out")) && !txt.Contains("respond")) { if (child.SizeRatio < 4) { if (Convert.ToBoolean(e.wp) && !needsAction) { // Requires action needsAction = true; OnRequiresAction(); ForceRedraw(); } else if (needsAction && !Convert.ToBoolean(e.wp)) { // No longer requires action needsAction = false; OnNoLongerRequiresAction(); } } } else if (txt.StartsWith("i am back") && child.SizeRatio < 4) { if (Convert.ToBoolean(e.wp) && !isSittingOut) { // Sitting out isSittingOut = true; OnSittingOut(); } else if (isSittingOut && !Convert.ToBoolean(e.wp)) { // Sitting in isSittingOut = false; OnSittingIn(); } } else if (txt.StartsWith("Deal Me Out")) { if (Convert.ToBoolean(e.wp) && !isSeated) { // Seated isSeated = true; OnSeated(); } else if (isSeated && !Convert.ToBoolean(e.wp)) { // Unseated isSeated = false; OnUnSeated(); } } break; } }
public override bool EnumChildWindowCallBack(int hWnd, int lParam) { if (children.ContainsKey(hWnd) || bannedChildren.Contains(hWnd)) return true; ChildWindow cw = new ChildWindow(hWnd); // Only save this child if it's relevant, otherwise ban the window if (cw.ControlID == 339 || cw.ControlID == 443 || cw.ControlID == 4000) children.Add(hWnd, new ChildWindow(hWnd)); else bannedChildren.Add(hWnd); return true; }