贴一个微信小程序跳一跳辅助

//此程序根据微信公众号DotNet的文章》net开发一个微信跳一跳辅助而来,

其核心时间系数值直接引用自文章;

1.窗体

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 微信跳一跳辅助
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            int titleh = Height - ClientSize.Height;
            int titlew = Width - ClientSize.Width;
            Height = height + titleh;
            Width = width + titlew;

}
        int time = int.Parse(System.Configuration.ConfigurationSettings.AppSettings["Time"]);//点击后截图时间;测试发现不能设太小
        string path = System.Configuration.ConfigurationSettings.AppSettings["AdbPath"];//adb.exe所在路径,徐包含adb.exe
        int height = int.Parse(System.Configuration.ConfigurationSettings.AppSettings["Height"]);//图片高度,一般截取第一张图后,打开图片用截图工具拖一下看看图片高度宽度各是多少
        int width =int.Parse(System.Configuration.ConfigurationSettings.AppSettings["Width"]);//图片宽度
        bool canCLick = false;
        Point Start;
        Point End;
        private void pictureBox1_Click(object sender, EventArgs e)

{
            if (!canCLick)
            {
                Text = Application.ProductName + "(不允许点击!)";
                return;
            }
            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)//目标位置
            {
                if(Start.Equals(new Point(0, 0)))
                {
                    GetPhoneScreen();
                    Text = Application.ProductName + "(为你刷新手机屏幕)";
                    return;
                }
                End = ((System.Windows.Forms.MouseEventArgs)(e)).Location;
                //计算两点直接的距离
                //3.999022243950134这个值来自网络大神,本文思路也是按照网上别人给出的实例思路来的!
                double value = Math.Sqrt(Math.Pow(Math.Abs(Start.X - End.X),2)+Math.Pow( Math.Abs(Start.Y - End.Y),2));
               Text = Application.ProductName+ string.Format("(距离{0}需要时间:{1})", value, (3.999022243950134 * value).ToString("0"));
              new ProcessDef(ProcessDefEnum.other)//此处引用本人自己写的,以前封装的类库,文后会贴ProcessDef源码,也可百度或者直接使用DotNet文章中的写法
                {
                    FileName = path,
                    CommandText= string.Format("shell input swipe 100 100 200 200 {0}", (3.999022243950134 * value).ToString("0"))
               }.RunGetResult();
                canCLick = false;
                Start = new Point(0, 0);
                GetPhoneScreen();
            }
        }
        void GetPhoneScreen()
        {
            try
            {
                if (File.Exists("D:tyt.png"))
            {
                pictureBox1.Image = null;
                Thread.Sleep(time);
                GC.Collect();
                File.Delete("D:tyt.png");
            }
            new ProcessDef(ProcessDefEnum.other)
            {
                FileName = path,
                CommandText = "shell /system/bin/screencap -p /sdcard/tyt.png"
            }.RunGetResult();
            Thread.Sleep(5);
            new ProcessDef(ProcessDefEnum.other)
            {
                FileName = path,
                CommandText = "pull /sdcard/tyt.png D:tyt.png"
            }.RunGetResult();
            pictureBox1.Image = new Bitmap("D:tyt.png");
            canCLick = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            GetPhoneScreen();
        }      
    }

}

2.

public class ProcessDef

{
            public ProcessDef(ProcessDefEnum defEnum)
        {
            StartType = defEnum;
            switch (StartType)
            {
                case ProcessDefEnum.cmd:

filename = "cmd.exe";
                    break;
                case ProcessDefEnum.PwoerShell:

filename = "PowerShell.exe";
                    break;
                default: break;
            }
            }
            public delegate void ResultHandler(string msg);
            public event ResultHandler OnResult;
            string filename = string.Empty;
            public string FileName
            {
                get { return filename; }
                set
                {
                    switch (StartType)
                    {
                        case ProcessDefEnum.cmd:

filename = "cmd.exe";
                            break;
                        case ProcessDefEnum.PwoerShell:

filename = "PowerShell.exe";
                            break;
                        case ProcessDefEnum.other:
                            if (!string.IsNullOrEmpty(value))
                            {
                            filename = value;
                            }
                            break;
                    }
                }
            }
            public string WorkDir { get; set; }
            public string CommandText { get; set; } = "echo .....";
            public bool UseShell { set { UseShell = value; } }
            public bool ShowConsole { get; set; } = false;
            public bool RedirectError { get; set; } = true;
            public bool RedirectInput { get; set; } = true;
            public bool RedirectdOutput { get; set; } = true;
            ProcessDefEnum StartType;
            string RuncmdOrPowerShell( bool rtn=false)
            {
                ProcessStartInfo psi = new ProcessStartInfo()
                {
                    FileName = FileName,
                    RedirectStandardError = RedirectError,
                    RedirectStandardInput = RedirectInput,
                    RedirectStandardOutput = RedirectdOutput,
                    CreateNoWindow = !ShowConsole,
                    UseShellExecute = false,
                };
                if (!string.IsNullOrEmpty(WorkDir) && Directory.Exists(WorkDir))
                {
                    psi.WorkingDirectory = WorkDir;

}
                Process process = new Process()
                {
                    StartInfo = psi
                };
                process.Start();
                process.StandardInput.WriteLine(CommandText);
                process.StandardInput.WriteLine ("exit");
                process.StandardInput.AutoFlush = true;
            if (rtn)
            {
                return process.StandardOutput.ReadToEnd();
            }
            else
            {
                while (!process.StandardOutput.EndOfStream)
                {
                    string msg = process.StandardOutput.ReadLine();
                    if (!string.IsNullOrEmpty(msg))
                        OnResult?.Invoke(msg);
                }
                return "";
            }
               // process.WaitForExit();
            }
            string RunOther(bool rtn = false)
        {
            ProcessStartInfo psi = new ProcessStartInfo()
            {
                FileName = FileName,
                RedirectStandardError = RedirectError,
                RedirectStandardInput = RedirectInput,
                RedirectStandardOutput = RedirectdOutput,
                CreateNoWindow = !ShowConsole,
                UseShellExecute = false,
                Arguments = CommandText,
            };

if (!string.IsNullOrEmpty(WorkDir) && Directory.Exists(WorkDir))
            {
                psi.WorkingDirectory = WorkDir;

}
            Process process = new Process()
            {
                StartInfo = psi
            };
            process.Start();
            if (rtn)
            {
                return process.StandardOutput.ReadToEnd();
            }
            else
            {
                OnResult?.Invoke(filename + " " + CommandText);
                while (!process.StandardOutput.EndOfStream)
                {
                    string msg = process.StandardOutput.ReadLine();
                    if (!string.IsNullOrEmpty(msg))
                        OnResult?.Invoke(msg);
                }
                return "";
            }
        }
            public void Run()
            {
            switch (StartType)
            {
                case ProcessDefEnum.cmd:
                case ProcessDefEnum.PwoerShell:
                    RuncmdOrPowerShell();
                    break;
                case ProcessDefEnum.other:
                    RunOther();
                    break;
                default:break;
            }
            }
            public string RunGetResult()
        {
            string result = string.Empty;
            switch (StartType)
            {
                case ProcessDefEnum.cmd:
                case ProcessDefEnum.PwoerShell:
                  result=  RuncmdOrPowerShell();
                    break;
                case ProcessDefEnum.other:
                   result= RunOther();
                    break;
                default:break;
            }
            return result;
        }
      
    }
    public enum ProcessDefEnum
    {
        cmd = 1,
        PwoerShell = 2,
        other = 3
    }

3.Program

namespace 微信跳一跳辅助
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

4.App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  <appSettings>
    <add key="AdbPath" value="D:\tools\Adb\adb.exe"/>
    <add key="Time" value="700"/>
    <add key="Height" value="620"/>
    <add key ="Width" value="375"/>
  </appSettings>
</configuration>

本文调用adb的程序不建议用文中贴出的类,本人用是因为有封装的Dll直接调用RunGetResult()即可:

给大家搜一个:

建议使用(以下形式)以下代码来自于http://blog.csdn.net/feifei_csdn/article/details/53455490:

  1. System.Diagnostics.Process p = new System.Diagnostics.Process();
  2. p.StartInfo.UseShellExecute = false;
  3. p.StartInfo.CreateNoWindow = true;
  4. p.StartInfo.FileName = "cmd.exe";
  5. p.StartInfo.Arguments = "/c adb shell cat /proc/gesture_state";
  6. p.StartInfo.RedirectStandardError = true;
  7. p.StartInfo.RedirectStandardInput = true;
  8. p.StartInfo.RedirectStandardOutput = true;
  9. p.Start();
  10. string outtr = p.StandardOutput.ReadToEnd();
  11. MessageBox.Show(outtr);
  12. p.Close();

原文地址:https://www.cnblogs.com/gfjin/p/8193318.html

时间: 2024-10-31 09:30:00

贴一个微信小程序跳一跳辅助的相关文章

.net开发 微信小游戏跳一跳辅助程序

一次巧合我看到了一篇关于微信小游戏跳一跳的辅助开发源码,链接:http://mp.weixin.qq.com/s/qGpoHNEf1A2AlofKFVdE2w 然后我试着下载下来跑一遍看能不能运行,显然是不能的,我总结了让能跑起来的几个步骤. 1.adb 环境变量配置 在网上下载 adb工具 1.0.32版本(比这个高或低的版本的可能连接不上),解压到某个文件夹下: 右击计算机——属性——高级系统设置——环境变量: 弹出”环境变量“对话框,单击”新建“一个环境变量. 在新建系统变量里,配置变量名

微信小程序 跳一跳 外挂 C# winform源码

昨天微信更新了,出现了一个小游戏"跳一跳",玩了一下 赶紧还蛮有意思的 但纯粹是拼手感的,玩了好久,终于搞了个135分拿了个第一名,没想到过一会就被朋友刷下去了,最高的也就200来分把,于是就想着要是开发个辅助就好了,于是简单想了一下最高游戏 先来说下这个游戏的界面和规则: 先看看界面 规则:按住屏幕 按一定时间松开就可以跳跃,跳跃到前方的图案中得1分,图按中间得2分(连续多个中间累加2分,比如第一个2分 第二个4分 第三个6分 最高累计32分) 其它规则不说明了 整理了下实现原理,其

两周撸一个微信小程序

利益相关 无 说明 该小程序代码已开源,点击可查看源码,可随意 star.也可以先扫描下方的小程序码直接体验. 写在前面 前段时间写了一个简单的小程序 QuietWeather,源码在这里,具体实现相关可查看这篇文章:两天撸一个天气应用微信小程序.但是这个 小程序 和 QuietWeather 完全不是一个数量级的.so,该文章梳理内容会有那么一点儿多,想跳过的可以直接拉到最下面... 这里先上效果图,感兴趣的也可以 查看源码 .实际体验可扫描??上面的小程序码. 效果图 PC 开发者工具录制,

wepy是一个微信小程序框架

wepy是一个微信小程序框架,支持模块化开发,开发风格类似Vue.js.可搭配redux使用,能同时打包出web和小程序.官方文档地址 目录结构: sotre: redux(如果你创建项目时使用了redux的话) wepy.config.js: webpack配置文件 app.wpy: 入口文件 project.config.json: 小程序项目配置文件 index.template.html: web页面的入口文件 pages: 存放主页面 components: 存放组件 mixins:

用Kotlin破解Android版微信小游戏-跳一跳

前言 微信又更新了,从更新日志上来看,似乎只是一次不痛不痒的小更新.不过,很快就有人发现,原来微信这次搞了个大动作--在小程序里加入了小游戏.今天也是朋友圈被刷爆的缘故. 看到网上 有人弄了一个破解版的,于是自己也跟着网上的案例整了一下,感觉挺有意思的. 游戏如下: 来玩游戏 劳动成果 跳一跳 微信小程序可以玩游戏了,我们来破解一下<跳一跳>这个官方出品的小游戏吧. 思路 用usb调试安卓手机,用adb截图并用鼠标测量距离,然后计算按压时间后模拟按压. $ adb shell input sw

撸了一个微信小程序项目

学会一项开发技能最快的步骤就是:准备,开火,瞄准.最慢的就是:准备,瞄准,瞄准,瞄准-- 因为微信小程序比较简单,直接开撸就行,千万别瞄准. 于是乎,趁着今天上午空气质量不错,撸了一个小程序,放在了男性交友网站上了, 我添加了很全的注释,大家赏个star. 地址:https://github.com/yll2wcf/wechat-weapp-lifeTools 功能介绍 功能比较简单,调用了百度ApiStore的接口即时查询空气质量. 我计划多加一些功能,争取把微信小程序提供的功能全用一遍. 也

微信小程序 跳转页面

1.wx.navigateTo  跳转页面(不销毁当前页面) wx.redictTo跳转页面(销毁当前页面会触发onUnload事件)wx.switchTab只能跳转tab页面(tab页面之前的页面全部销毁触发onUnload事件) 2.微信小程序页面分为普通页面跟tab页面  tab页面需要在app.json中设置,默认页面下面有导航栏(最高优先级) 3.unload事件是在页面销毁之后触发 原文地址:https://www.cnblogs.com/gpzhen/p/11603464.html

微信小程序跳转页面时参数过长导致参数丢失

问题描述: 微信小程序:跳转页面时传参,参数过长导致参数丢失 跳转到文章详情页时,使用的文章链接e.currentTarget.dataset.id过长导致参数丢失 handleClickArticle: function (e) { wx.navigateTo({ url: '/pages/index/articleinfo/articleinfo?urllink=' + e.currentTarget.dataset.id }) }, 解决方案: 调用微信的API,将参数编码传送,解码接收,

微信三公平台安装微信上瘾小程序“跳一跳”撞脸 谁侵权谁尴尬

玩法也非常简单:按压手机屏幕,小橡皮人就会从这个积木块,微信三公平台安装 (h5.hxforum.com) 联系方式170618633533企鹅2952777280 (http://yhgj8004.com) (http://www.yhgj8004.com) 源码出售 房卡出售 后台出租有意者私聊扣扣跳到前方的桌子或纸箱上.只有保持按压时间恰到好处,小橡皮人才不会摔倒,连续不断地跳下去. 简单,却让人"沦陷" "我们都沦陷了." "简直让人欲罢不能.&q