#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#define e_printf(N) fputs(N,stderr)//标准输出错误
void* Clipboard_my(char *data);
void main()
{
puts(">>>QQ刷屏器0.0.1<<<");
HWND x_qq;
char *data;
int i;
printf("请输入窗口句柄: ");
scanf_s("%d ", &x_qq);
printf("请输入要发送的文字: ");
scanf_s("%c", data);
printf("请输入要发送的次数: ");
scanf_s("%d ", &i);
system("pause");
if (Clipboard_my(data) == NULL){
e_printf("\n\n发生错误\n调用 Clipboard_x 函数,返回值为 NULL\n\n");
exit(1);
}
puts("刷屏开始\n");
puts("--------------------------------------");
for (int n = 0; n<i; n++){
SendMessage(x_qq, WM_PASTE, 0, 0);//粘贴当前复制内容
SendMessage(x_qq, WM_KEYDOWN, VK_RETURN, 0);//摁下回车键
}
puts("刷屏完毕\n");
printf("刷了 %d 次\n", i);
getchar();
return;
}
void* Clipboard_my(char *data)
{
//替换原来的剪辑板数据
HANDLE hClip;
char pBuf;
if (OpenClipboard(NULL)){//打开剪辑板
if (IsClipboardFormatAvailable(CF_TEXT)){
EmptyClipboard();//清空剪辑板
hClip = GlobalAlloc(GMEM_MOVEABLE, strlen(data) + 1);
pBuf = (char *)GlobalLock(hClip);
strcpy(pBuf, data);
GlobalUnlock(hClip);//解锁
SetClipboardData(CF_TEXT, pBuf);//写入新的剪辑板数据
CloseClipboard();//关闭剪贴板
}
else{
CloseClipboard();//关闭剪辑板
return NULL;
}
}
else return NULL;
system("pause");
return 1;
}
data变量你还没赋值,就使用
解决办法:给data变量一开始提供一个值
data变量还未定义就使用了,你需要先定义一下再运行