Exemplo n.º 1
0
        public Form1()
        {
            try
            {
                _broadcastCallback.BroadcastData += args => rtbAllMessages.Text += args.Message + @"\r\n";
                _proxyBroadcast = new BroadcastClient(new InstanceContext(_broadcastCallback));
                _proxyBroadcast.ClientCredentials.UserName.UserName = "******";
                _proxyBroadcast.ClientCredentials.UserName.Password = "******";
                _proxyBroadcast.Connect();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.InnerException == null ? ex.ToString() : ex.InnerException.ToString());
            }

            //_proxyCardRecognize.Start();

            //var bmp = Image.FromFile(@"test.bmp") as Bitmap;

            //var result = _proxyCardRecognize
            //    .Recognize(new RecoginizeData
            //        {
            //            GameTypeTemplate = GameTemplateType.斗地主手牌,
            //            CardsBitmap = Util.Serialize(bmp.Clone(new Rectangle(280, 590, 400, 50), bmp.PixelFormat))
            //        });
            //    result.Result
            //    .ToList()
            //    .ForEach(card =>
            //             cardsDisplay += card.Color.ToString() + card.Num.ToString());

            InitializeComponent();
        }
Exemplo n.º 2
0
        public Form1()
        {
            InitializeComponent();

            _proxyBroadcast = new BroadcastClient(new InstanceContext(_broadcastCallback));
            _broadcastCallback.BroadcastData += args =>
            {
                var resultCardType = args.Data.Deserialize() as CardTypeResult;

                if (!_friendCardTypeResults.Contains(resultCardType, new CardTypeResultComparer()))
                {
                    _friendCardTypeResults.Add(resultCardType);
                }

                //如果友方牌型全部都接受完
                if (_friendCardTypeResults.Count == 2)
                {
                }
            };

            _proxyRecognize.Start();
            _proxyBroadcast.Connect();
        }
Exemplo n.º 3
0
        private void button1_Click(object sender, EventArgs e)
        {
            _proxyRecognize.Open();

            //#region 打开应用程序
            //var process = Process.Start(@"D:\Program Files\拇指通科技\赖子山庄\赖子山庄.exe");
            //process.WaitForInputIdle();
            //Thread.Sleep(10000);
            //#endregion


            //#region 登录

            //var mainWindows = @"赖子山庄登录".FindWindow(); //K赖子山庄1
            //var childWindows = mainWindows.GetChildWindows();
            //var userWnd = childWindows.First(w =>
            //                                  User32Api.IsWindowVisible(w) &&
            //                                  w.GetClassName() == "ThunderRT6ComboBox");//TreeView20WndClass,SysTreeView32,ThunderRT6ComboBox

            //userWnd.SetWindowText("tf_846");
            //var passwordWnd = childWindows.First(w =>
            //                                  User32Api.IsWindowVisible(w) &&
            //                                  w.GetClassName() == "ThunderRT6TextBox");//TreeView20WndClass,SysTreeView32,ThunderRT6ComboBox

            //passwordWnd.SetWindowText("q123456789");


            //var loginBmp = Image.FromFile(@"login.bmp");


            //mainWindows.SetForeground();
            //_proxyRecognize.Match(mainWindows.Capture().Serialize(), loginBmp.Serialize(), (float)0.8).Center().MouseLClick(mainWindows);


            //#endregion


            #region 进房间
            //Thread.Sleep(10000);
            var pkpBmp          = Image.FromFile(@"扑克室.bmp");
            var mainRoomWindows = @"赖子山庄".FindWindow();
            mainRoomWindows.SetForeground();
            var childRoomWindows = mainRoomWindows.GetChildWindows();
            var rectClick        = new Rectangle();
            foreach (var w in childRoomWindows)
            {
                var bmpTmp = w.GetWindowRect().Capture();
                rectClick = _proxyRecognize.Match(bmpTmp.Serialize(), pkpBmp.Serialize(), (float)0.8);
                if (!rectClick.IsEmpty)
                {
                    break;
                }
            }

            (rectClick.Center() + new Size(0, 20)).MouseLClick(mainRoomWindows);

            #endregion


            //var itemText = treeView.GetItemText(treeView.GetRootItem());

            //var items = new List<IntPtr>();
            //treeView.SearchChildItem(treeView.GetRootItem(), "计算机", ref items);
            //treeView.ItemClick(items[0], new Size());

            return;



            try
            {
                //_broadcastCallback.BroadcastData += args => rtbAllMessages.Text += args.Message + @"\r\n";
                _proxyBroadcast.Connect();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.InnerException == null ? ex.ToString() : ex.InnerException.ToString());
            }

            try
            {
                var bmp = Image.FromFile(@"login.bmp") as Bitmap;
                if (null == bmp || _proxyRecognize.ClientCredentials == null)
                {
                    return;
                }

                //var process = Process.Start(@"D:\Program Files\拇指通科技\赖子山庄\赖子山庄.exe");
                //process.WaitForInputIdle();
                //Thread.Sleep(5000);
                //var wndBmp = process.MainWindowHandle.Capture();

                var wnd = "赖子山庄".FindWindow();
                if (wnd == IntPtr.Zero)
                {
                    MessageBox.Show("找不到赖子山庄窗口");
                    return;
                }
                var childWnds = wnd.GetChildWindows();
                var index     = 0;
                childWnds.ForEach(wndChild => wndChild.GetWindowRect().Capture().Save(string.Format("{0}.bmp", index++)));

                return;

                wnd.SetForeground();
                //wnd = User32Api.FindWindow("Edit", null);
                var wndBmp = wnd.GetWindowRect().Capture();

                wndBmp.Save("ffff.bmp");
                //wndBmp.Clone(new Rectangle{X=8,Y=173,Width=59,Height=24}, wndBmp.PixelFormat).Save("eeee.bmp");
                //var wndBmp = Image.FromFile("qqq.bmp") as Bitmap;

                var beginTime = DateTime.Now.Ticks;
                var rect      = _proxyRecognize.Match(wndBmp.Serialize(), bmp.Serialize(), (float)0.84);
                var endTime   = DateTime.Now.Ticks;
                var t         = new TimeSpan(endTime - beginTime);

                using (var fs = new FileStream("time.txt", FileMode.Create))
                {
                    using (var sw = new StreamWriter(fs))
                    {
                        sw.WriteLine(string.Format("{0}秒", t.Seconds));
                    }
                }
                wnd.SetForeground();
                rect.Center().MouseLClick(wnd);
                rect.Center().MouseLClick(wnd);
                //(rect.Center() + new Size(rect.Width, 0)).MouseLClick(wnd);
                //WinIoLab.Singleton.KeyPress(new List<Keys> {Keys.T, Keys.E, Keys.S, Keys.T, Keys.Space});

                wndBmp.Clone(rect, wndBmp.PixelFormat).Save("rect.bmp");
                Thread.Sleep(5000);

                return;

                var result = _proxyRecognize.Recognize(new RecoginizeData
                {
                    GameTypeTemplate = GameTemplateType.斗地主手牌,
                    CardsBitmap      = bmp.Clone(new Rectangle(280, 590, 400, 50), bmp.PixelFormat).Serialize()
                });

                var begin = DateTime.Now;
                //MouseInputManager.Click(514, 396);

                var cardsTest = new CardsTest();
                var cards     = cardsTest.GetNextPlayerCards(13);
                cards = result.Result.Take(13).ToList();
                var resultParseType = _proxyRecognize.ParseCardType(cards.ToArray());
                var end             = DateTime.Now;

                using (var fs = new FileStream("result.txt", FileMode.Create))
                {
                    using (var sw = new StreamWriter(fs))
                    {
                        var resultDisplay = "";
                        cards.ForEach(card => resultDisplay += "{" + card.Color + "," + card.Num + "}");
                        sw.WriteLine(resultDisplay);

                        var tmp = "";

                        resultParseType.CardTypeHead
                        .Cards
                        .ToList()
                        .ForEach(card => tmp += "{" + card.Color + "," + card.Num + "}");
                        tmp += "(" + resultParseType.CardTypeHead.CardTypeEm + ")   ";

                        resultParseType.CardTypeMiddle
                        .Cards
                        .ToList()
                        .ForEach(card => tmp += "{" + card.Color + "," + card.Num + "}");
                        tmp += "(" + resultParseType.CardTypeMiddle.CardTypeEm + ")   ";

                        resultParseType.CardTypeTail
                        .Cards
                        .ToList()
                        .ForEach(card => tmp += "{" + card.Color + "," + card.Num + "}");
                        tmp += "(" + resultParseType.CardTypeTail.CardTypeEm + ")";

                        sw.WriteLine(tmp);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.InnerException == null ? ex.ToString() : ex.InnerException.ToString());
            }
        }