c#胖東來小程序自動購物程序(接單,windows桌面程序、linux程序、網絡應用等等)

一、程序效果

自動打開胖東來小程序,自動購物

 二、實現

先截屏,然後利用opencv庫識別下一步按鍵所在位置,然後使用mouse_event控制鼠標,模擬人的動作

第一步,截取屏幕

static Bitmap CaptureScreen()
{
    int screenWidth = Screen.PrimaryScreen.Bounds.Width;
    int screenHeight = Screen.PrimaryScreen.Bounds.Height;
    Bitmap screenshot = new Bitmap(screenWidth, screenHeight);
    using (Graphics graphics = Graphics.FromImage(screenshot))
    {
        graphics.CopyFromScreen(0, 0, 0, 0, new System.Drawing.Size(screenWidth, screenHeight));
    }

    return screenshot;
}    

第二步,利用opencv庫識別出位置

微信主界面如下

 想要打開小程序,可以識別出上部的搜索欄,點擊並輸入,首先,需要截取出需要點擊的位置

 clickPicture的功能就是先截屏,然後選擇路徑爲path的圖片,利用MatchTemplate比較得出圖片位置,模擬鼠標點擊

static void clickPicture(string path)
{
    Mat img = OpenCvSharp.Extensions.BitmapConverter.ToMat(CaptureScreen()).CvtColor(ColorConversionCodes.RGB2BGR);
    Mat templ = new Mat(path, ImreadModes.Color);
    Mat result = new Mat();
    Cv2.MatchTemplate(img, templ, result, TemplateMatchModes.CCoeffNormed);
    Cv2.MinMaxLoc(result, out _, out var maxVal, out var minLoc, out var maxLoc);
    var matchLoc = maxLoc;
    MouseEvent(MouseEventType.LeftDown, matchLoc.X + templ.Cols / 2, matchLoc.Y + templ.Rows / 2);
    Thread.Sleep(100); // 可以添加一些延遲以模擬人工點擊
    MouseEvent(MouseEventType.LeftUp, matchLoc.X + templ.Cols / 2, matchLoc.Y + templ.Rows / 2);
}

然後模擬鍵盤輸入胖東來

Clipboard.SetText("胖東來");
SendKeys.SendWait("^v");

模擬點擊下面的小程序搜索

 再模擬點擊小程序

 然後依次完成自動購物

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章