Ejemplo n.º 1
0
 public static extern bool ClientToScreen(IntPtr hWnd, ref POINT pt);
Ejemplo n.º 2
0
        /// <summary>
        /// 获取成交提示
        /// </summary>
        /// <param name="hWnd"></param>
        /// <returns></returns>
        public static String GetEntrustTipsAndClickYes(IntPtr hWnd)
        {
            string no = "0";
            IntPtr confirmWindow = IntPtr.Zero;
            Win32API.EnumWindowsProc EnumWindowsProc = delegate(IntPtr p, int lParam)
            {
                if (p != IntPtr.Zero)
                {
                    String text = GetWindowText(p);
                    String clazz = GetClassName(p);

                    if (clazz == "#32770" && text == "")
                    {
                        IntPtr hParent = Win32API.GetParent(p);
                        String pText = GetWindowText(hParent);
                        if(pText == @"网上股票交易系统5.0") {
                            int staticId = 0x03EC;
                            IntPtr pStatic = Win32API.GetDlgItem(p, staticId);
                            if(pStatic != IntPtr.Zero) {
                                confirmWindow = p;
                                byte[] lParamStr = new byte[100];
                                Win32API.SendMessage(pStatic, Win32Code.WM_GETTEXT, 100, lParamStr);
                                String sText = Encoding.Unicode.GetString(lParamStr);
                                Console.WriteLine("找到委托提示窗口:{0}, 合同:{1}", Convert.ToString(p.ToInt64(), 16), sText);
                                if (sText.Contains("委托已成功提交"))
                                {
                                    int i = sText.IndexOf("。");
                                    no = sText.Substring(17, i - 17);
                                    int btnYesId = 0x0002;
                                    IntPtr btnYes = Win32API.GetDlgItem(p, btnYesId);

                                    //int pbId;
                                    //Win32API.GetWindowThreadProcessId(btnYes, out pbId);
                                    POINT pt = new POINT();
                                    pt.x = 1;
                                    pt.y = 1;
                                    Win32API.SendMessage(btnYes, Win32Code.WM_SETFOCUS, 0, 0);
                                    Win32API.PostMessage(btnYes, Win32Code.WM_MOUSEMOVE, 0, ref pt);
                                    Win32API.PostMessage(btnYes, Win32Code.WM_LBUTTONDOWN, 0, ref pt);
                                    Win32API.PostMessage(btnYes, Win32Code.WM_LBUTTONUP, 0, ref pt);
                                    Win32API.PostMessage(btnYes, Win32Code.WM_LBUTTONDOWN, 0, ref pt);
                                    Win32API.PostMessage(btnYes, Win32Code.WM_LBUTTONUP, 0, ref pt);
                                    //Win32API.keybd_event(13, 0, 0, pbId);
                                    //Win32API.keybd_event(13, 0, 2, pbId);

                                    Win32API.SendMessage(btnYes, Win32Code.WM_SETFOCUS, 0, 0);
                                    Win32API.SendMessage(btnYes, Win32Code.WM_LBUTTONDOWN, 0, 0);
                                    Win32API.SendMessage(btnYes, Win32Code.WM_LBUTTONUP, 0, 0);
                                    Win32API.SendMessage(btnYes, Win32Code.WM_LBUTTONDOWN, 0, 0);
                                    Win32API.SendMessage(btnYes, Win32Code.WM_LBUTTONUP, 0, 0);
                                }
                            }
                        }

                    }
                    return true;
                }

                return false;
            };

            Win32API.EnumChildWindows(IntPtr.Zero, EnumWindowsProc, new IntPtr(100));

               return no;
        }
Ejemplo n.º 3
0
 public static extern bool UpdateLayeredWindow(IntPtr hwnd, IntPtr hdcDst, ref POINT pptDst, ref SIZE psize, IntPtr hdcSrc, ref POINT pprSrc, Int32 crKey, ref BLENDFUNCTION pblend, Int32 dwFlags);
Ejemplo n.º 4
0
 public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, ref POINT lParam);
Ejemplo n.º 5
0
 public static extern bool ClientToScreen(IntPtr hWnd, ref POINT pt);
Ejemplo n.º 6
0
 public static extern bool UpdateLayeredWindow(IntPtr hwnd, IntPtr hdcDst, ref POINT pptDst, ref SIZE psize, IntPtr hdcSrc, ref POINT pprSrc, Int32 crKey, ref BLENDFUNCTION pblend, Int32 dwFlags);
Ejemplo n.º 7
0
 public static extern int PostMessage(IntPtr hWnd, int msg, int wParam, ref POINT lParam);