c语言刷屏函数的作用是什么,刷屏神器源码(C语言控制台版)【原创】

c语言刷屏函数的作用是什么,刷屏神器源码(C语言控制台版)【原创】作者奥利奥2783608988本程序关键(下面两个函数)voidStart_send_messages(void);//模拟按键发送信息voidSetClipBoardText(char*message);//置剪辑版文本只要稍加利用就也可以做出刷屏器(利用循环)本程序大部分是在做效果其实真正用来刷屏的代码就是上面两个函数/*头文件*/#include#include…

大家好,又见面了,我是你们的朋友全栈君。

作者 奥利奥 2783608988

本程序关键 (下面两个函数)

void Start_send_messages(void);//模拟按键发送信息

void SetClipBoardText(char * message);//置剪辑版文本

只要稍加利用 就也可以做出刷屏器 (利用循环)

本程序大部分是在做效果    其实真正用来刷屏的代码就是上面两个函数

/*头文件*/

#include

#include

#include

#include

#include

/*声明函数*/

void main_mean(int show);//主菜单

void gotoxy(int x,int y);//光标到指定位置

void Start_send_messages(void);//模拟按键发送信息

void a_word_printf(char * a, int time); //文字渐显

void SetClipBoardText(char * message);//置剪辑版文本

/*全局变量*/

int interval = 1000;//时间间隔

char * text = NULL;//刷屏内容

int main(void)

{

int location = 1 ,setup ;//选项,设置是否成功

system(“title 刷屏神器【C语言控制台版】”);//改变窗口标题

system(“mode con: cols=38 lines=24”);//设置窗口大小

/*隐藏光标*/

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);//获得标准输出设备句柄

CONSOLE_CURSOR_INFO cci;//定义光标信息结构体

GetConsoleCursorInfo(hConsole, &cci);//获得当前光标信息

cci.bVisible = 0; //为0时光标不可见

SetConsoleCursorInfo(hConsole, &cci);

main_mean(1);//显示主菜单

while(1)//死循环

{

switch(getch())

{

case ‘W’:case ‘w’:

location–;

if( location == 0 )

{

location++;

}

else if( location == 1 )

{

/* 画出本次选择痕迹 */

gotoxy(8,4);

printf(“●”);

/* 清除上次选择痕迹 */

gotoxy(8,7);

printf(” “);

}

else if( location == 2 )

{

/* 画出本次选择痕迹 */

gotoxy(8,7);

printf(“●”);

/* 清除上次选择痕迹 */

gotoxy(8,10);

printf(” “);

}

else if( location == 3 )

{

/* 画出本次选择痕迹 */

gotoxy(8,10);

printf(“●”);

/* 清除上次选择痕迹 */

gotoxy(8,13);

printf(” “);

}

break;

case ‘S’:case ‘s’:

location++;

if( location == 2 )

{

/* 画出本次选择痕迹 */

gotoxy(8,7);

printf(“●”);

/* 清除上次选择痕迹 */

gotoxy(8,4);

printf(” “);

}

else if( location == 3 )

{

/* 画出本次选择痕迹 */

gotoxy(8,10);

printf(“●”);

/* 清除上次选择痕迹 */

gotoxy(8,7);

printf(” “);

}

else if( location == 4 )

{

/* 画出本次选择痕迹 */

gotoxy(8,13);

printf(“●”);

/* 清除上次选择痕迹 */

gotoxy(8,10);

printf(” “);

}

else if( location == 5 )

{

location–;

}

break;

case 13:

//进入当前选项 回车键:VK_RETURN (13)

main_mean(0);//显示标题

if( location == 1 )/*选项——【刷屏周期】*/

{

printf(“请输入刷屏周期(单位:毫秒):”);

scanf_s(“%d%*c”,&interval);

setup = 1;//设置成功

}

else if( location == 2 )/*选项——【刷屏内容】*/

{

int word_number; //字符串字数

printf(“\n请输入刷屏内容的大概字数:”);

scanf_s(“%d”,&word_number);

text = (char *)malloc(word_number*2); //字符串文本

printf(“\n请输入刷屏内容:”);

scanf_s(“%s”,text);

setup = 1;//设置成功

}

else if( location == 3 )/*选项——【开始刷屏】*/

{

char ch;

printf(“剪辑版是否已有文本?”

” 是 否 “);

/* 画出痕迹 */

gotoxy(22,3);

printf(“●”);

location = ‘l’;

ch = getch();

while( ch != 13 ) //判断用户是否点击确定

{

switch(ch)

{

case ‘A’:case’a’:

location = ‘l’;

/* 清除上次选择痕迹 */

gotoxy(29,3);

printf(” “);

/* 画出本次选择痕迹 */

gotoxy(22,3);

printf(“●”);

break;

case ‘D’:case ‘d’:

location = ‘r’;

/* 清除上次选择痕迹 */

gotoxy(22,3);

printf(” “);

/* 画出本次选择痕迹 */

gotoxy(29,3);

printf(“●”);

break;

}

ch = getch();

}

if( location == ‘r’ ) //选择【是否有剪辑版文本——否】

{

if( text != NULL )//判断是否设置完刷屏文本

{

SetClipBoardText(text);

}

else

{

gotoxy(0,5);

printf(“未设置刷屏内容 请重新设置”);

setup = 0 ; //设置不成功

break;//结束switch

}

}

printf(“\n\n是否开始刷屏? “

” 是 否 “);

/* 画出痕迹*/

gotoxy(22,5);

printf(“●”);

location = ‘l’;

ch = getch();

while( ch != 13 ) //判断用户是否点击确定

{

switch(ch)

{

case ‘A’:case’a’:

location = ‘l’;

/* 清除上次选择痕迹 */

gotoxy(29,5);

printf(” “);

/* 画出本次选择痕迹 */

gotoxy(22,5);

printf(“●”);

break;

case ‘D’:case ‘d’:

location = ‘r’;

/* 清除上次选择痕迹 */

gotoxy(22,5);

printf(” “);

/* 画出本次选择痕迹 */

gotoxy(29,5);

printf(“●”);

break;

}

ch=getch();

}

if( location == ‘l’ ) //选择【是否开始刷屏——是】

{

system(“cls”);

main_mean(0);//显示标题

int time;

for( time = 10 ; time >= 0 ; time– )

{

if( time == 10 )

{

gotoxy(12, 10);

printf(“10秒后开始刷屏”);

}

Sleep(1000);

gotoxy(12, 10);

printf(“%d秒后开始刷屏”,time);

}

while(1)

{

if(_kbhit())// 检查当前是否有键盘输入

{

break; //结束while循环

}

Sleep(interval);

Start_send_messages();

}

}

else//选择【是否开始刷屏——否】

{

setup = 0;

}

}

else if( location == 4 )/*选项——使用说明*/

{

a_word_printf(“●本程序由奥利奥制作[C语言控制台版],其实在此之前我已经做过刷屏器的窗”

“口版,为了方便初学者学习,才做出控制台版的.有需要源码的小伙伴可以加我QQ:”

“27836089 88 或者 C语言资源共享群 519536269 .\n\n”

“使用说明:刷屏时间——每几毫秒进行一次刷屏(1秒=1000毫秒),默认是1000”

“毫秒.\n开始刷屏——成功设置完毕后,请将鼠标移到所要刷屏的窗口,10秒结束”

“后将开始自动刷屏.\n”

,50);

}

SetConsoleTextAttribute(hConsole,FOREGROUND_GREEN|FOREGROUND_INTENSITY); //设置控制台字体颜色

gotoxy(0,16);

if( setup == 1 )

{

printf(“======================================\n提示:\n\n 设置成功,按任意键返回主菜单”);

}

else if( setup == 0 )

{

printf(“======================================\n提示:\n\n sss按任意键返回主菜单”);

}

getch();

main_mean(1);

location = 1;

break;

} //switch

}//while

return 0;

}

/*

=================================================

本函数作用:显示界面

参数1:是否显示菜单(为1显示界面 不为1只显示名称)

=================================================

*/

void main_mean(int show)

{

system(“cls”); //清屏

gotoxy(0,0);

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(hConsole,FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_INTENSITY); //设置控制台字体颜色

printf( ” \n”

” 奥利奥刷屏神器【C语言控制台版】\n”

” \n”);

int line;

for( line = 0 ; line < 5 ; line++ )

{

if( show == 1 )

{

SetConsoleTextAttribute(hConsole,FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_INTENSITY|COMMON_LVB_GRID_HORIZONTAL); //设置控制台字体颜色

printf( ” \n” );

SetConsoleTextAttribute(hConsole,FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_INTENSITY); //设置控制台字体颜色

if( line == 0 )

{

if( interval != 1000 )

{

printf(” 刷屏周期【★】 \n”);

}

else

{

printf(” 刷屏周期【默】 \n”);

}

}

else if( line == 1 )

{

if( text == NULL )

{

printf(” 刷屏内容【空】 \n”);

}

else

{

printf(” 刷屏内容【★】 \n”);

}

}

else if( line == 2 )

{

printf(” 开始刷屏 \n” );

}

else if( line == 3 )

{

printf(” 使用说明 \n”);

}

}

}

if( show == 1 )

{

/*随机显示提示*/

SetConsoleTextAttribute(hConsole,FOREGROUND_GREEN|FOREGROUND_INTENSITY); //设置控制台字体颜色

srand((unsigned)time(NULL));//随机数种子

gotoxy(0,16);

int tips = ( rand() % 7 ) + 1;

if( tips == 1 )

{

printf(“======================================\n 小提示\n\n 如果刷屏周期太短\n 可能会造成电脑卡或发送失败”);

}

else if( tips == 2 )

{

printf(“======================================\n 小提示\n\n 1000毫秒=1秒!\n 默认的刷屏周期是1000毫秒哦”);

}

else if( tips == 3 )

{

printf(“======================================\n 小提示\n\n 作者QQ 2783608988\n 有疑问的小伙伴可以加Q”);

}

else if( tips == 4 )

{

printf(“======================================\n 小提示\n\n 点击开始刷屏后\n 请把光标移到所要刷屏的窗口”);

}

else if( tips == 5 )

{

printf(“======================================\n 小提示\n\n 本程序使用C语言制作\n 安全无毒 请放心使用”);

}

else if( tips == 6 )

{

printf(“======================================\n 小提示\n\n 本程序属于控制台版\n 需要窗口版的可以加我Q”);

}

else if( tips == 7 )

{

printf(“======================================\n 小提示\n\n 如果想刷图片,可以复制所要刷屏的图片\n 然后选择【是否有剪辑板文本——是】”);

}

SetConsoleTextAttribute(hConsole,FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_INTENSITY); //设置控制台字体颜色

gotoxy(8,4);

printf(“●”);

}

SetConsoleTextAttribute(hConsole,FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_INTENSITY); //设置控制台字体颜色

return;

}

/*

=======================================

本函数作用:模拟按键达到发送信息的目的

原理:利用已有的剪辑文本进行模拟按键,

Ctrl+V[粘贴]

QQ的两种发送快捷键:Ctrl+Enter和Enter

=======================================

*/

void Start_send_messages(void)

{

/*

*/

keybd_event(0x11,0,0,0);//按下ctrl键

keybd_event(86,0,0,0);//按下V键

keybd_event(86,0,KEYEVENTF_KEYUP,0);//松开v键

keybd_event(0x11,0,KEYEVENTF_KEYUP,0);//松开ctrl键

keybd_event(0x11,0,0,0);//按下ctrl键

keybd_event(0xD,0,0,0);//按下Enter键

keybd_event(0xD,0,KEYEVENTF_KEYUP,0);//松开Enter键

keybd_event(0x11,0,KEYEVENTF_KEYUP,0);//松开ctrl键

keybd_event(0xD,0,0,0);//按下Enter键

keybd_event(0xD,0,KEYEVENTF_KEYUP,0);//松开Enter键

return;

}

/*

====================================

本函数作用:让字符串一字一字慢慢显示

【类型:输出函数】

参数1:所要慢慢显示的字符

参数2:每次显示的时间间隔

====================================

*/

void a_word_printf(char * a, int time)//渐显文字

{

int i ;

for (i = 0; a[i] != ‘\0’; i++)

{

printf(“%c”, a[i]);

Sleep(time);

}

return;

}

/*

=======================================

本函数作用:光标到指定位置

参数1:指定列x

参数2:指定行y

参数3:1表示ASCLL码 2表示表示非ASCLL码

=======================================

*/

void gotoxy(int x, int y)//光标到指定位置

{

HANDLE hOut;

hOut = GetStdHandle(STD_OUTPUT_HANDLE);//获得标准输入输出的句柄

COORD pos = { x,y };//表示一个字符在控制台屏幕上的坐标(ASCLL码宽度为1 非ASCLL码宽度为2)

SetConsoleCursorPosition(hOut, pos); //光标定位在对应的位置

return;

}

/*

====================================

本函数作用:置剪辑板文本

参数1 :准备置入剪辑板的文本(字符串)

====================================

*/

void SetClipBoardText(char *message)

{

HGLOBAL hMemory;

LPTSTR lpMemory;

OpenClipboard(NULL);//打开剪切板

EmptyClipboard();// 清空剪切板

hMemory = GlobalAlloc(GMEM_MOVEABLE, strlen(message) + 1);

// 对剪切板分配内存

lpMemory = (LPTSTR)GlobalLock(hMemory);

// 将内存区域锁定

memcpy(lpMemory, message, strlen(message) + 1); /*或者 memcpy_s(lpMemory, contentSize, content, contentSize);*/

// 将数据复制进入内存区域

GlobalUnlock(hMemory); // 解除内存锁定

SetClipboardData(CF_TEXT, hMemory);

CloseClipboard();//关闭剪切板

return;

}

本程序是控制台版  需要窗口版的可以去下载↓↓↓

C语言刷屏神器1.1(窗口版) – 下载频道 – .NET  http://download..net/detail/qq_34028920/9608584

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/143883.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号