c语言刷屏函数的作用是什么,刷屏神器源码(C语言控制台版)【原创】
作者 奥利奥 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
c语言刷屏函数的作用是什么,刷屏神器源码(C语言控制台版)【原创】相关推荐
- c语言 临时文件作用,c语言函数mktemp()产生唯一临时文件名实例源码介绍
c语言函数mktemp()产生唯一临时文件名实例源码介绍.有关的函数:tmpfile引入的头文件:#include 定义函数mktemp():char * mktemp(char * template ...
- C语言打印字符串的所有排列组合(附完整源码)
C语言打印字符串的所有排列组合 字符串的所有排列问题 C语言打印字符串的所有排列组合的完整源码(定义,实现,main函数测试) 字符串的所有排列问题 示例:ABC的排列是ABC,ACB,BCA,BAC ...
- C语言——史上最全通讯录讲解(附源码)
C语言--史上最全通讯录讲解(附源码) 一.开始界面的打印 二.对六大板块进行定义操作 三.对联系人进行初始化 四.对通讯录进行初始化 4.1动态版本 4.2静态版本 五.通讯录六大功能的具体实现 5 ...
- C语言实现的一个小学生算数自测系统源码分享
C语言实现的一个小学生算数自测系统源码分享 #include <stdio.h> //标准输入输出 #include <stdlib.h> //用于对程序进行退出操作 #inc ...
- C语言期末大作业-学生成绩管理系统(完整源码+设计报告)
C语言-学生成绩管理系统 一.学生成绩管理系统源码(完整) 二.程序设计报告 1.课程设计目的 2.课程设计任务与要求: 4.课程设计成果(运行截图) 5.课程设计心得 一.学生成绩管理系统源码(完整 ...
- C++数字是否为质数的函数的简单有效实现(附完整源码)
C++数字是否为质数的函数的简单有效实现算法 C++数字是否为质数的函数的简单有效实现算法完整源码(定义,实现,main函数测试) C++数字是否为质数的函数的简单有效实现算法完整源码(定义,实现,m ...
- [iOS] 完整源码, Swift语言 - 账号保存工具
代码地址如下: http://www.demodashi.com/demo/15017.html 1. 需求分析 作为一个开发者,平时肯定在各个平台,网站注册了各种账号:由于太多,很多时候都是注册之后 ...
- 阿里api网关接口客户端demo,java实现源码,其他语言可参考
访问阿里api网关接口客户端demo,java实现源码,其他语言可参考 上一篇文章 <阿里api网关接口创建.发布.授权.调试> 中,介绍了3个典型接口的创建并在阿里控制台调试完成,地址: ...
- 会员管理系统源码 php语言开发
会员管理系统源码 php语言开发 可用于美容店,理发店,服装店,美甲店,奢侈品店等等 功能介绍: 1.常用功能 会员登记,会员充值,会员充次,商品消费(会员),商品消费(散客),快速消费(会员),快速 ...
- 国际多语言出海商城返佣产品自动匹配订单源码
国际多语言出海商城返佣产品自动匹配订单源码 8国多语言出海拼单商城 此网站是很多巴西客户定制的原型,已投放运营符合当地本地化 多语言商城返利返佣投资理财派单自带余额宝, 采取全新支付端口,后台语音提醒 ...
最新文章
- 大量数据快速导出的解决方案-Kettle
- 安卓APP动态调试-IDA实用攻略
- 服务器证书CA的相关操作
- PHP probuf详细步骤_初识protobuf和php的相关用法
- Spring陷阱:事务测试被认为是有害的
- prop attr 到底哪里不一样?
- obj文件编辑软件_工程动画制作 | MAX文件导出obj、fbx格式在Bentley软件中应用
- android root点击事件,在Android中使用InputManagerService进行事件传递
- 四六级英语都考过,让你见识一下“八级程序员”
- (转)高效的MySQL分页
- Z-TEK CE usb转串口驱动(win32)
- 求职软件测试工程师英文简历,软件测试员英文简历模板.doc
- openwrt nas_真牛气,矿渣蜗牛星际也能玩软路由Openwrt和NAS虚拟一体机
- 长期听耳机有什么坏处?哪种类型的耳机对耳朵危害小?
- LSTM多输入时间序列预测之股价预测
- Git 报错 error: pathspec ‘XXX‘ did not match any file(s) known to git 报错解决方法
- Web前端 HTML Day_01
- Orin 调试GMSL camera遇到问题之MIPI CSI2 报文解析
- 湖北出台禁犬令PHP 新闻,湖北省拟出台最严禁狗令,禁止饲养包括中华田园犬在内的多种狗狗...
- 地球坐标系 (WGS-84) 到火星坐标系 (GCJ-02) 的转换算法
热门文章
- 【数据挖掘算法与应用】——数据挖掘导论
- 海龟编辑器 html版,海龟编辑器官方版
- conda cudnn版本升级_Ubuntu16.04深度学习环境+个人桌面配置(CUDA10.1 + cudnn8.0.4 + pytorch1.7)...
- 《21天学通Java(第6版)》—— 2.11 练习
- MATLAB最新官方中文文档
- 嵌入式系统开发-麦子学院(1)——前言
- js高级程序设计(第五章)
- Java项目实战教程|最完整的Javaweb项目推荐(资料+源码分享)
- 全志平台 ov2718 sensor驱动开发
- 【学习笔记】尚硅谷大数据项目之Flink实时数仓---数据采集