Beispiel #1
0
 private void ConnectDevice()
 {
     try
     {
         AdbShell.Connect(this.txtDevice.Text);
     }
     catch { }
     finally
     {
         this.btnConnect.Enabled = true;
     }
 }
Beispiel #2
0
        private void LoadDevices()
        {
            try
            {
                Regex          ipport_regex = new Regex(@"(?<ipport>[^\t]+)");
                Regex          regex        = new Regex(@"(?<num>\d+)$");
                List <Monitor> monitorList  = new List <Monitor>();
                Process[]      ps           = Process.GetProcesses();
                foreach (var p in ps)
                {
                    try
                    {
                        if (p.MainModule.ModuleName == "MEmu.exe")
                        {
                            // 逍遥模拟器
                            string name = p.MainWindowTitle;
                            // "D:\Program Files\Microvirt\MEmu\MEmu.exe" MEmu_3
                            string cmdline = Tool.ReadCommandLine(p.Id);
                            int    port    = 21503;
                            if (cmdline.EndsWith("MEmu"))
                            {
                                port = 21503;
                            }
                            else
                            {
                                string numStr = regex.Match(cmdline).Groups["num"].Value;
                                int    num    = 0;
                                int.TryParse(numStr, out num);

                                port = (21503 + num * 10);
                            }

                            monitorList.Add(new Monitor()
                            {
                                IPPort = "127.0.0.1:" + port,
                                Title  = name
                            });
                        }
                        else if (p.MainModule.ModuleName == "Nox.exe")
                        {
                            // 夜神模拟器
                            string name = p.MainWindowTitle;
                            // "D:\Program Files\Microvirt\MEmu\MEmu.exe" MEmu_3
                            string cmdline = Tool.ReadCommandLine(p.Id);
                            int    port    = 62001;
                            if (cmdline.EndsWith("administrator"))
                            {
                                port = 62001;
                            }
                            else
                            {
                                string numStr = regex.Match(cmdline).Groups["num"].Value;
                                int    num    = 0;
                                int.TryParse(numStr, out num);
                                if (num == 0)
                                {
                                    port = 62001;
                                }
                                else
                                {
                                    port = (62024 + num);
                                }
                            }

                            monitorList.Add(new Monitor()
                            {
                                IPPort = "127.0.0.1:" + port,
                                Title  = name
                            });
                        }
                    }
                    catch { }
                }

                if (monitorList.Count > 0)
                {
                    foreach (var item in monitorList)
                    {
                        AdbShell.Connect(item.IPPort);
                    }

                    string   content = AdbShell.Devices();
                    string[] array   = content.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (var item in array)
                    {
                        if (item.EndsWith("\tdevice"))
                        {
                            string ipport  = ipport_regex.Match(item.Trim()).Groups["ipport"].Value;
                            var    monitor = monitorList.Find(p => p.IPPort == ipport);
                            if (monitor == null)
                            {
                                monitorList.Add(new Monitor()
                                {
                                    Title = ipport, IPPort = ipport
                                });
                            }
                        }
                    }

                    this.cmbDevice.DataSource = monitorList;
                }
            }
            catch
            {
            }
            finally
            {
                this.btnRefreshDevices.Enabled = true;
            }
        }