C语言写一个微信或微信朋友圈刷屏程序

实现微信对话框中刷屏,还可以在微信朋友圈评论中刷屏,可自行调整刷屏间隔(速度)

源代码:

#include <windows.h>
#include <stdio.h>
#include <string.h>

void clickAt(int x, int y) {
    SetCursorPos(x, y);  // 移动鼠标到指定位置
    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);  // 按下鼠标左键
    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);    // 松开鼠标左键
}

void pasteString(const char* str) {
    // 将字符串复制到剪贴板
    OpenClipboard(NULL);
    EmptyClipboard();

    // 计算字符串长度并分配内存
    size_t len = strlen(str) + 1;
    HGLOBAL hGlob = GlobalAlloc(GMEM_MOVEABLE, len);
    memcpy(GlobalLock(hGlob), str, len);
    GlobalUnlock(hGlob);

    // 将内存句柄设置到剪贴板
    SetClipboardData(CF_TEXT, hGlob);
    CloseClipboard();

    // 模拟 Ctrl+V 粘贴
    keybd_event(VK_CONTROL, 0, 0, 0);  // 按下 Ctrl
    keybd_event(0x56, 0, 0, 0);        // 按下 V
    keybd_event(0x56, 0, KEYEVENTF_KEYUP, 0); // 松开 V
    keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); // 松开 Ctrl

    // 模拟回车键
    keybd_event(VK_RETURN, 0, 0, 0);   // 按下回车
    keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0); // 松开回车
}

void waitForAltKey(int* x, int* y) {
    printf("请按下 Alt 键锁定位置并开始刷屏\n正在等待您的操作...\n");

    while (1) {
        // 检查 Alt 键是否被按下
        if (GetAsyncKeyState(VK_MENU)) {
            // 获取当前鼠标位置
            POINT p;
            GetCursorPos(&p);
            *x = p.x; // 保存鼠标 x 坐标
            *y = p.y; // 保存鼠标 y 坐标
            printf("目标位置: (%d, %d)\n", *x, *y);
            break;
        }
        Sleep(100); // 每 100 毫秒检查一次
    }
}

int main() {
    char textToPaste[256]; // 用于存储用户输入的文本
    int x = 0, y = 0; // 用于存储鼠标坐标

    printf("微信朋友圈刷屏:首先输入需要发送的字符串,然后将鼠标移动到朋友圈的评论上面按下 Alt 键开始发送,开始后不要随意操作鼠标和键盘,按下 F1 键可返回到监听 Alt 键的状态。\n");

    // 要求用户输入要粘贴的字符串
    printf("请输入需要发送评论的内容: ");
    fgets(textToPaste, sizeof(textToPaste), stdin);
    // 去掉字符串末尾的换行符
    textToPaste[strcspn(textToPaste, "\n")] = 0; // 移除换行符

    // 等待用户按下 Alt 键并获取鼠标位置
    waitForAltKey(&x, &y);

    // 执行点击和粘贴操作,直到用户按下 ESC 键
    printf("刷屏中... 按 ESC 键返回到监听状态。\n");
    
    while (1) {
        clickAt(x, y); // 点击获取的鼠标位置
        pasteString(textToPaste); // 粘贴字符串

        // 检查 ESC 键是否被按下
        if (GetAsyncKeyState(VK_F1)) {
            printf("返回到监听 Alt 键状态...\n");
            waitForAltKey(&x, &y); // 重新等待 Alt 键并获取新的鼠标位置
            printf("继续刷屏... 按 F1 键返回到监听状态。\n");
        }
        Sleep(1); // 避免CPU占用过高
    }

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值