Example #1
0
        private async void _BTNConnect_Click(object sender, RoutedEventArgs e)
        {
            CmdBuilder cmd = new CmdBuilder()
            {
                Command = "adb"
            };

            cmd.UpdateInputArgs("-a", "-a");
            cmd.UpdateInputArgs("Connect", "connect");
            cmd.UpdateInput("IP", state.IP);
            Debug.WriteLine(cmd.GetFullCmdString());
            var excutor = new CommandExcutor(cmd);
            var stdout  = await excutor.AsyncExcute(5000);

            state.UpdateCmdStdOut(stdout["StdOut"]);
            Debug.WriteLine(cmd.GetFullCmdString());
            cmd = new CmdBuilder()
            {
                Command = "adb"
            };
            cmd.UpdateInputArgs("Devices", "devices");
            excutor = new CommandExcutor(cmd);
            stdout  = await excutor.AsyncExcute(5000);

            state.UpdateCmdStdOut(stdout["StdOut"]);
            state.UpdateCmdStdOut(@"Waiting for Screencap...");
            state.Screencap = await AsyncScreencap();

            state.UpdateCmdStdOut(@"Screencap Recieved!");
        }
Example #2
0
        private void SendKey(int keyCode)
        {
            CmdBuilder cmd = new CmdBuilder()
            {
                Command = "adb"
            };

            cmd.UpdateInputArgs("Shell", "shell");
            cmd.UpdateInputArgs("Input", "input");
            cmd.UpdateInputArgs("InputType", "keyevent");
            cmd.UpdateInput("KeyCode", keyCode.ToString());
            CommandExcutor excutor = new CommandExcutor(cmd);

            excutor.Excute();
        }
Example #3
0
        private void SendTap(int x, int y)
        {
            CmdBuilder cmd = new CmdBuilder()
            {
                Command = "adb"
            };

            cmd.UpdateInputArgs("Shell", "shell");
            cmd.UpdateInputArgs("Input", "input");
            cmd.UpdateInputArgs("InputType", "tap");
            cmd.UpdateInput("TapX", x.ToString());
            cmd.UpdateInput("TapY", y.ToString());
            CommandExcutor excutor = new CommandExcutor(cmd);

            excutor.Excute();
        }
Example #4
0
        private void StartApp(string appName, bool useActionMode = true)
        {
            string     actionType = useActionMode ? "-a" : "-n";
            CmdBuilder cmd        = new CmdBuilder()
            {
                Command = "adb"
            };

            cmd.UpdateInputArgs("Shell", "shell");
            cmd.UpdateInputArgs("Start", "am start");
            cmd.UpdateInputArgs("ActionType", actionType);
            //cmd.UpdateInputArgs("WaitUntilComplete", "-W");
            cmd.UpdateInput("AppName", appName);
            CommandExcutor excutor = new CommandExcutor(cmd);

            excutor.Excute(5000);
        }
Example #5
0
        public async Task <BitmapImage> AsyncScreencap(int delay = 100)
        {
            string      pngName        = string.Format("screencap_{0:D5}.png", new Random().Next(99999));
            string      pngPathOnPhone = string.Format("/sdcard/{0}", pngName);
            string      pngPath        = System.IO.Path.Combine(System.IO.Path.GetTempPath(), pngName);
            BitmapImage result         = null;
            CmdBuilder  cmd            = new CmdBuilder()
            {
                Command = "adb"
            };

            cmd.UpdateInputArgs("Shell", "shell");
            cmd.UpdateInputArgs("Screencap", "screencap");
            cmd.UpdateInputArgs("SaveAsPng", "-p");
            cmd.UpdateOutput("Output", pngPathOnPhone);
            Debug.WriteLine(cmd.GetFullCmdString());
            CommandExcutor excutor = new CommandExcutor(cmd);

            Thread.Sleep(delay); //wait for phone's response
            await excutor.AsyncExcute(5000);

            cmd = new CmdBuilder()
            {
                Command = "adb"
            };
            cmd.UpdateInputArgs("Pull", "pull");
            cmd.UpdateInput("Input", pngPathOnPhone);
            cmd.UpdateOutput("Output", pngPath);
            excutor = new CommandExcutor(cmd);
            await excutor.AsyncExcute();

            result = ImageLoader.Open(pngPath);
            File.Delete(pngPath);
            cmd = new CmdBuilder()
            {
                Command = "adb"
            };
            cmd.UpdateInputArgs("Shell", "shell");
            cmd.UpdateInputArgs("Delete", "delete");
            cmd.UpdateInput("Input", pngPathOnPhone);
            excutor = new CommandExcutor(cmd);
            await excutor.AsyncExcute();

            return(result);
        }
Example #6
0
        private async void _BTNSendCom_Click(object sender, RoutedEventArgs e)
        {
            state.UpdateCmdStdOut("\n");
            CmdBuilder cmd = new CmdBuilder()
            {
                Command = "adb"
            };

            cmd.UpdateInputArgs("args", _TBCommand.Text);
            CommandExcutor excutor = new CommandExcutor(cmd);
            var            stdout  = await excutor.AsyncExcute(5000);

            state.UpdateCmdStdOut(stdout["StdOut"]);
            state.UpdateCmdStdOut(@"Command Sended!Waiting for Screencap...");
            state.Screencap = await AsyncScreencap(0);

            state.UpdateCmdStdOut(@"Screencap Recieved!");
        }
Example #7
0
        private void SendSwipe(int x1, int y1, int x2, int y2)
        {
            CmdBuilder cmd = new CmdBuilder()
            {
                Command = "adb"
            };

            cmd.UpdateInputArgs("Shell", "shell");
            cmd.UpdateInputArgs("Input", "input");
            cmd.UpdateInputArgs("InputType", "swipe");
            cmd.UpdateInput("TapX1", x1.ToString());
            cmd.UpdateInput("TapY1", y1.ToString());
            cmd.UpdateInput("TapX2", x1.ToString());
            cmd.UpdateInput("TapY2", y1.ToString());
            CommandExcutor excutor = new CommandExcutor(cmd);

            excutor.Excute();
        }