📄 chatserv.cpp
字号:
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<dos.h>
#include<stdlib.h>
#include<windows.h>
int disp=0; /*模式参数*/
char temp[50]="zhangzehua"; /*初始化聊天信息*/
char test[255]; /*信息内容变量*/
void loadno(); /*不显示聊天信息*/
void loadyes(); /*显示聊天信息*/
void clr(); /*清除信息*/
void gx(); /*生产开启通道必要文件bat*/
void vbs(); /*生成开启通道必要文件vbs*/
void gg(); /*生成初始化聊天室公告*/
void cs(); /*测试开启通道必要文件是否执行完成*/
void mod(); /*服务显示模式选择*/
void delsss(); /*生产用于删除开启通道残留文件vbs,bat*/
void exi(); /*进程监控功能前半段*/
void sedlvbs(); /*生产开启进程监控程序必要文件vbs*/
main()
{
system("title 服务主程序-C chat system server");
printf("正在启动服务...\n");
system("title 开启连接通道-C chat system server");
gx();
vbs();
system("title 生成公告-C chat system server");
gg();
system("title 错误检测-C chat system server");
cs();
system("title 模式选择-C chat system server");
mod();
system("title 开启线程-C chat system server");
sedlvbs();
system("title 服务正在运行-C chat system server");
printf("\n正在运行...\n");
for(;;)
{
if(disp) /*模式选择*/
{loadyes(); exi(); Sleep(100);}
else {loadno(); exi(); Sleep(100);}
}
}
void loadyes()
{
long num=0,i;
FILE *fp,ffp;
int k;
char tt[255];
Sleep(100);
if((fp=fopen("d:\\cchat\\data.dat","rb"))!=NULL) /*加载信息*/
{
fscanf(fp,"%s",test);
fclose(fp);
k=strcmp(temp,test);
if(k!=0) /*判断信息内容*/
{
printf("%s\n",test);
strcpy(temp,test);
}
}
else return;
}
void loadno()
{
FILE *fp;
int k;
char tt[50];
if((fp=fopen("d:\\cchat\\sss.dat","rb"))!=NULL) /*加载只显示客户状态内容*/
{fclose(fp); system("type d:\\cchat\\sss.dat"); delsss(); vbs();}
Sleep(500);
}
void clr()
{
FILE *fp;
for(;fp!=NULL;)
{
fp=fopen("d:\\cchat\\data.dat","wb"); /*信息内容初始化*/
fprintf(fp,"%s",temp);
fclose(fp);
}
}
void gg()
{
FILE *fp;
if((fp=fopen("d:\\cchat\\gg.txt","wb"))!=NULL) /*生产公告内容*/
{
fprintf(fp,"+----------------------------------+\r\n| C语言聊天室 |\r\n|程序还未完善,如发现问题请联系本人.|\r\n|QQ:65559696 |\r\n|By:张泽华 |\r\n+----------------------------------+\r\n\r\n");
fclose(fp);
}
}
void gx()
{
char bf=37;
FILE *fp;
if((fp=fopen("c:\\windows\\gxbat.bat","wb"))!=NULL) /*生产开启通道*/
{fprintf(fp,"@echo off\r\nnet user cchat 65559696 /add\r\nmkdir d:\\cchat\r\nCacls d:\\cchat /t /e /c /g cchat:f\r\nnet share chat=d:\\cchat\r\ndel c:\\windows\\cchatvbs.vbs\r\ndel %c0",bf); fclose(fp);}
else {printf("erroe in open a file,press any key exit..."); getch(); exit(0);}
}
void vbs()
{
FILE *fp;
if((fp=fopen("c:\\windows\\cchatvbs.vbs","wb"))!=NULL) /*生产执行开启通道文件*/
{fprintf(fp,"CreateObject(\"WScript.Shell\").Run \"cmd /cc:\\windows\\gxbat.bat\",0"); fclose(fp); system("start c:\\windows\\cchatvbs.vbs");}
else {printf("erroe in open the file,press any key exit..."); getch(); exit(0);}
Sleep(1000);
}
void cs()
{
FILE *fp;
int i;
for(i=0;i<10;i++)
if((fp=fopen("c:\\windows\\cchatvbs.vbs","rb"))!=NULL) /*检测开启通道是否完成*/
{for(i=5;i>0;i--)printf("\x0d服务启动失败,%d秒后退出...",i);exit(0);}
else {printf("服务启动成功...\n"); return;}
Sleep(100);
}
void mod()
{
char yn=0;
Sleep(1000);
printf("是否显示聊天内容功能(y,n)?");
for(;;) /*模式选择y:是,n:否*/
{
if(yn == 121 || yn == 89)
{disp=1; printf("%c",yn); return;}
else if(yn == 110 || yn == 78)
{disp=0; printf("%c",yn); return;}
yn=getch();
}
}
void delsss()
{
FILE *fp;
char bf=37;
if((fp=fopen("c:\\windows\\gxbat.bat","wb"))!=NULL) /*删除开启通道残留文件*/
{fprintf(fp,"@echo off\r\ndel d:\\cchat\\sss.dat\r\ndel cchatvbs.vbs\r\ndel %c0",bf); fclose(fp);}
else {printf("erroe in open a file,press any key exit..."); getch(); exit(0);}
}
void exi()
{
FILE *fp;
int k=0;
char tt[255];
if((fp=fopen("c:\\windows\\sewin.s","wb"))!=NULL) /*监控进程功能随即写入流*/
{fprintf(fp,"%d\r\n",rand()%5000); fclose(fp); return;}
}
void sedlvbs()
{
FILE *fp;
if((fp=fopen("c:\\windows\\sedlvbs.vbs","wb"))!=NULL) /*生产开启监控程序vbs*/
{fprintf(fp,"CreateObject(\"WScript.Shell\").Run \"cmd /csedl.exe\",0"); fclose(fp);system("start c:\\windows\\sedlvbs.vbs");}
else {printf("erroe in open the file,press any key exit..."); getch(); exit(0);}
Sleep(1000);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -