源碼已經運行環境已經打包下載即可 執行adb命令的函數 ...
源碼已經運行環境已經打包下載即可
執行adb命令的函數
/// <summary> /// 執行adb命令 /// </summary> /// <param name="arguments"></param> /// <param name="ischeck"></param> /// <returns></returns> private string cmdAdb(string arguments,bool ischeck=true) { if (ischeck&&!HasAndroid) { return string.Empty; } string ret = string.Empty; using (Process p = new Process()) { p.StartInfo.FileName = Program.AdbPath;// @"C:\Android\sdk\platform-tools\adb.exe"; p.StartInfo.Arguments = arguments; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; //重定向標準輸入 p.StartInfo.RedirectStandardOutput = true; //重定向標準輸出 p.StartInfo.RedirectStandardError = true; //重定向錯誤輸出 p.StartInfo.CreateNoWindow = true; p.Start(); ret = p.StandardOutput.ReadToEnd(); p.Close(); } return ret; }
圖片點擊事件
/// <summary> /// 黑人底部位置 /// </summary> Point Start; /// <summary> /// 圖案中心或者白點位置 /// </summary> Point End; private void pictureBox1_Click(object sender, EventArgs e) { var me = ((System.Windows.Forms.MouseEventArgs)(e)); if (me.Button==MouseButtons.Left)//按下左鍵是黑人底部的坐標 { Start = ((System.Windows.Forms.MouseEventArgs)(e)).Location; } else if (me.Button == MouseButtons.Right)//按下右鍵鍵是黑人底部的坐標 { End = ((System.Windows.Forms.MouseEventArgs)(e)).Location; //計算兩點直接的距離 double value = Math.Sqrt(Math.Abs(Start.X - End.X) * Math.Abs(Start.X - End.X) + Math.Abs(Start.Y - End.Y) * Math.Abs(Start.Y - End.Y)); Text = string.Format("兩點之間的距離:{0},需要按下時間:{1}", value, (3.999022243950134 * value).ToString("0")); //3.999022243950134 這個是我通過多次模擬後得到 我這個解析度的最佳時間 cmdAdb(string.Format("shell input swipe 100 100 200 200 {0}", (3.999022243950134 * value).ToString("0"))); } }
本文基於 中國.NET研究協會指導
http://www.cnblogs.com/dotnet-org-cn
源碼地址
https://files.cnblogs.com/files/yangxu-tech/%E8%B7%B3%E4%B8%80%E8%B7%B3%E8%BE%85%E5%8A%A9%E7%A8%8B%E5%BA%8F.zip